我正试图在进度条周围设置边框,但无法获取
我得到的是什么:
我不想用蓝色填充背景。
这就是我想要的:
这是XML文件
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<solid android:color="#1669A0" />
<corners android:radius="10dp" />
</shape>
</item>
<item android:id="@android:id/progress">
<clip>
<layer-list>
<item>
<color android:color="#00000000" />
</item>
<item
android:left="5dp"
android:top="5dp"
android:right="5dp"
android:bottom="5dp">
<shape>
<solid android:color="#00FF00" />
<corners android:radius="10dp" />
</shape>
</item>
</layer-list>
</clip>
</item>
</layer-list>
答案 0 :(得分:9)
对于遇到同样问题的其他人来说,这可能会有所帮助: 您可以添加线条形状部分以向其添加笔触(作为边框),然后在进度部分中添加适当的填充(通常等于或大于笔划宽度)。
示例:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
<shape>
<corners android:radius="10dp"/>
<solid android:color="YOUR BACKGROUND COLOR HERE"/>
<stroke android:color="YOUR BORDER COLOR HERE" android:width="5dp" />
</shape>
</item>
<item android:id="@android:id/progress"
android:top="5dp"
android:bottom="5dp"
android:right="5dp"
android:left="5dp">
<clip>
<scale android:scaleWidth="100%" >
<shape>
<corners android:radius="10dp"/>
<solid android:color="YOUR PROGRESS COLOR HERE"/>
</shape>
</scale>
</clip>
</item>
</layer-list>
答案 1 :(得分:0)
尝试将#00000000
更改为#ffffff
(六个'f')。 #00000000
是透明的,而#ffffff
是白色的。如果您使用#00000000
,您将只看到该图层正后方的颜色(在本例中为蓝色)。
答案 2 :(得分:0)
您可以尝试以下方法:
erase
并使用此可绘制对象(myprogressbar.xml)
<ProgressBar
android:id="@+id/ProgressBar01"
android:layout_width="121dp"
android:layout_height="15dp"
android:progress="50"
android:max="100"
android:secondaryProgress="0"
style="?android:attr/progressBarStyleHorizontal"
android:progressDrawable="@drawable/myprogressbar"
android:layout_marginTop="10dp"/>
中所述