gpt4 book ai didi

android - 在 Android 上的形状上绘制顶部边框

转载 作者:IT老高 更新时间:2023-10-28 23:17:09 28 4
gpt4 key购买 nike

我正在创建一个自定义进度条(位于 WebView 下),我想在 WebView 之间绘制一条 1dp 宽的线。和 ProgressBar .我正在修改现有的可绘制对象,即 progress_horizontal.xml ,并尝试了这样的事情:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

(...)

<item>
<shape android:shape="line">
<stroke android:width="1dp" android:color="#FF000000" />
</shape>
</item>

</layer-list>

然而,这条线是垂直居中的,但我希望它被绘制在可绘制对象的顶部。我能想到的唯一想法是在下面使用这个“hacky”渐变:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

(...)

<item>
<shape>
<gradient
android:startColor="#FF000000"
android:centerColor="#00000000"
android:centerY="0.01"
android:endColor="#00000000"
android:angle="270"
/>
</shape>
</item>

</layer-list>

你有更好的想法如何绘制与 layer-list 定义的可绘制对象的顶部对齐的单线形状吗? ?

最佳答案

我也花了一段时间试图弄清楚这一点。希望有更好的方法,但这是我使用的方法,这也有点骇人听闻,但如果它对某人有帮助,我想我会分享。

图层列表中的第一项应该是您想要作为边框的任何颜色的纯色。接下来就是你想要有边框的东西,在你想要边框的任何一侧都有填充。

例如:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="YOUR BORDER COLOR" />
</shape>
</item>
<item android:top="YOUR TOP BORDER THICKNESS">
THE THING YOU WANT A BORDER ON
</item>
</layer-list>

这个想法是项目上的填充显示其背后的实心形状,呈现边框外观。您可以在任何一侧添加填充以添加边框。我想你可以通过这种方式变得更复杂并拥有不同颜色的边框。

看起来像一个 hack,但它对我有用。

编辑:我说的是“填充”,但在图层列表中它更像是一个偏移量。

关于android - 在 Android 上的形状上绘制顶部边框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2224644/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com