Android 设置进度条的样式

Android 设置进度条的样式,android,xml,styles,progress-bar,clip,Android,Xml,Styles,Progress Bar,Clip,我在设置进度条的样式时遇到问题 基本上,我希望背景样式如下: 进展是这样的: 然而,我能得到的壁橱是这样的:即只是一个黑色的边框,周围没有白线 也就是说,设置进度后,结果如下所示: 真是一团糟 我正在使用图层列表来尝试实现这种效果,但当我尝试为进度对项目进行图层时,它不起作用,我花了几个小时尝试各种事情,但我还没有找到解决方案,我确信这与剪辑功能有关,但这是必需的,否则进度不会改变 我当前的XML在下面,请注意,这将显示绿色进度条,因为它在上面,只有黑色边框,没有白色边框,当我添加另一个带有白色

我在设置进度条的样式时遇到问题

基本上,我希望背景样式如下:

进展是这样的:

然而,我能得到的壁橱是这样的:即只是一个黑色的边框,周围没有白线

也就是说,设置进度后,结果如下所示:

真是一团糟

我正在使用图层列表来尝试实现这种效果,但当我尝试为进度对项目进行图层时,它不起作用,我花了几个小时尝试各种事情,但我还没有找到解决方案,我确信这与剪辑功能有关,但这是必需的,否则进度不会改变

我当前的XML在下面,请注意,这将显示绿色进度条,因为它在上面,只有黑色边框,没有白色边框,当我添加另一个带有白色边框的项目时,我将丢失整个进度条!:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Define the background properties like color and border etc (RED background with 2dp black border and overlaid 1dp white border ) -->
    <item android:id="@android:id/background">
    <shape>
         <solid android:color="#FF0000" />
        <stroke android:width="2dp" android:color="#000000" />
    </shape>

   </item>
       <!-- add our white outline over the top-->
    <item android:id="@android:id/background">
    <shape>
        <stroke android:width="1dp" android:color="#FFFFFF" />
    </shape>

   </item>


       <!-- for the actual progress bar add our colour and border-->
  <item android:id="@android:id/progress"> 
    <clip android:gravity="left">
        <shape>  
            <solid android:color="#00FF00" />
            <stroke android:width="2dp" android:color="#000000" />       
        </shape>    
    </clip>
    </item>    

</layer-list> 
现在,如果我将以下内容添加到上述xml的底部,我将丢失整个进度条,并且没有得到预期的白色轮廓

  <item android:id="@android:id/progress"> 
    <clip android:gravity="left">
        <shape>  
            <stroke android:width="1dp" android:color="#FFFFFF" />       
        </shape>    
    </clip>
    </item>  

有人对我如何实现这一点有什么想法吗?

为了防止有人在这里寻找答案,我无法用XML实现这一点,不得不使用9补丁映像来实现它。一旦你有你的头周围的9补丁图像格式,它的工作相当不错

我使用了优秀的网络工具:

生成我的

然后对xml进行如下编辑:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
    <nine-patch android:src="@drawable/progressbackground" />
   </item>


    <item android:id="@android:id/progress">
        <clip xmlns:android="http://schemas.android.com/apk/res/android"
            android:clipOrientation="horizontal"
            android:gravity="left">
            <nine-patch android:src="@drawable/progress" />
        </clip>
    </item>


</layer-list> 

而且它起作用了…

使用xml可以做到这一点:

<?xml version="1.0" encoding="utf-8"?>

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item >
    <shape android:shape="rectangle">

        <padding android:left="1dp"
            android:top="1dp"
            android:right="1dp"
            android:bottom="1dp"/>

        <solid android:color="@android:color/white"/>

    </shape>
</item>
<item >
    <shape android:shape="rectangle">

        <padding android:left="1dp"
            android:top="1dp"
            android:right="1dp"
            android:bottom="1dp"/>

        <solid android:color="@android:color/black"/>

    </shape>
</item>
<item >
    <shape android:shape="rectangle">


        <solid android:color="#d4413a"/>

    </shape>
</item>

<item android:id="@android:id/secondaryProgress">
    <clip>
        <shape>
            <solid android:color="@color/green"/>
        </shape>
    </clip>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape>
            <solid android:color="@color/green"/>
        </shape>
    </clip>
</item>

</layer-list>