定制水平进度条

3

嗨,我刚写了一个水平进度条。进度条使用了这个背景资源:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <inset xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable="@drawable/progress_bg" />
</item>
<item android:id="@android:id/progress" android:gravity="center">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <solid android:color="#FFF" />
        </shape>
    </clip>
</item>

这个代码可以正常运行,但是白色进度条和背景的高度一样。我想让进度条比进度条的背景小,因为背景有一个边框,不应该重叠。

有什么好的想法吗? 谢谢

4个回答

2

还有:

<item android:id="@android:id/secondaryProgress"></item>

你也改过它吗?


1

http://developer.android.com/guide/topics/resources/drawable-resource.html#LayerList

您可以尝试在白色进度条的item中添加android:topandroid:leftandroid:rightandroid:bottom,以便为进度条添加填充。
<item android:id="@android:id/progress" android:gravity="center"
    android:top="2dp" android:left="2dp" android:right="2dp" android:bottom="2dp">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <solid android:color="#FFF" />
        </shape>
    </clip>
</item>

嗨,这并没有改变它,白色进度条仍然和整个背景图像一样大... - softwaresupply

1

嗨,实际上我没有使用它。

完整的 XML 如下:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <inset xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable="@drawable/progress_bg" />
</item>
<item android:id="@android:id/secondaryProgress" android:gravity="center">
    <clip>
        <shape>
            <corners android:radius="5dip" />
            <solid android:color="#FFF" />
        </shape>
    </clip>
</item>

干杯


0

嗨,尝试添加没有颜色的描边(不透明度最大)我已经在我的渐变进度条中尝试了这段代码:

    <?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>
            <corners android:radius="10dip" />
            <gradient
                android:angle="270"
                android:centerColor="#f8d79b"
                android:centerY="0.5"
                android:endColor="#f8d79b"
                android:startColor="#f8d79b" />
        </shape>
    </item>
    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <stroke
                    android:width="5px"
                    android:color="#00ffffff" />
                <corners android:radius="10dip" />
                <gradient
                    android:angle="0"
                    android:endColor="#ffac17"
                    android:startColor="#ffac17" />
            </shape>
        </clip>
    </item>
</layer-list>

所以你的代码应该像这样:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <inset xmlns:android="http://schemas.android.com/apk/res/android"
        android:drawable="@drawable/progress_bg" />
</item>
<item android:id="@android:id/secondaryProgress" android:gravity="center">
    <clip>
        <shape>
           <stroke
                    android:width="5px"
                    android:color="#00ffffff" />
            <corners android:radius="5dip" />
            <solid android:color="#FFF" />
        </shape>
    </clip>
</item>

对我有用,希望对你也有用 :D


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接