进度条周围的边框

时间:2016-01-26 09:00:19

标签: android xml android-layout

我正试图在进度条周围设置边框,但无法获取

我得到的是什么:

What I am getting

我不想用蓝色填充背景。

这就是我想要的:

Want

这是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>

3 个答案:

答案 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>

你会得到类似的东西: enter image description here

答案 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"/>

this article

中所述