带填充的Android进度条

带填充的Android进度条,android,android-progressbar,Android,Android Progressbar,我想让我的进度条看起来像这样: 我不想使用图像,因此我尝试使用以下形状: 但是我不能为绿线设置边距(我试着在任何可能的地方都设置边距),而且我也不能做这样的圆角(看起来像corners安卓:radius不起作用)。请帮助我不幸的是,我没有找到解决问题的办法。我能做圆角的唯一方法是使用圆角的9节图像 有一个很好的教程可以做到这一点:一个简单的解决方法是将进度条包装到具有圆形形状和与进度条相同背景颜色的布局中 可绘制进度条示例(可绘制/progress_bar.xml): 进度条样式

我想让我的进度条看起来像这样:

我不想使用图像,因此我尝试使用以下形状:



但是我不能为绿线设置边距(我试着在任何可能的地方都设置边距),而且我也不能做这样的圆角(看起来像
corners安卓:radius
不起作用)。请帮助我

不幸的是,我没有找到解决问题的办法。我能做圆角的唯一方法是使用圆角的9节图像


有一个很好的教程可以做到这一点:

一个简单的解决方法是将进度条包装到具有圆形形状和与进度条相同背景颜色的布局中

可绘制进度条示例(可绘制/progress_bar.xml):


进度条样式:

<resources>
    <style name="ProgressBarStyle" parent="@android:style/Widget.ProgressBar.Horizontal">
        <item name="android:layout_width">fill_parent</item>
        <item name="android:layout_height">10dip</item>
        <item name="android:max">100</item>
        <item name="android:progressDrawable">@drawable/progress_bar</item>
    </style>
</resources>

填补家长的空缺
10度
100
@可拉伸/进度条
布局形状(drawable/rounded_shape.xml):


活动布局:

<!-- ... -->
      <LinearLayout                     
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:background="@drawable/rounded_shape"
                  android:layout_marginLeft="30dip"
                  android:layout_marginRight="30dip">
            <ProgressBar
                    android:id="@+id/testSummaryProgressBar"
                    android:progress="10"
                    style="@style/ProgressBarStyle"/>
        </LinearLayout>
<!-- ... -->

效果:

要增加进度条的填充,必须增加圆角形状文件中的填充。


<?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="#222" />
            <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>

是的,不使用@Nykakin所建议的图像,就有可能完全实现这一点。要使进度有填充圆角,就要对项目进度使用列表层

<item android:id="@android:id/progress">
<clip>
  <layer-list>
       <-- transparent background  -->
   <item>
       <color android:color="#00000000" />
   </item>
   <-- padding -->
   <item  
      android:left="2dp"
      android:top="2dp"
      android:right="2dp"
      android:bottom="2dp">
    <shape>
        <corners android:radius="50dp" />

        <gradient
            android:angle="270"
            android:endColor="#9dfd6e"
            android:startColor="#16e61c" />
     </shape>
   </item>
  </layer-list>
</clip>


太棒了!你救了我一天+1我们好。。!!这应该是公认的答案。非常感谢!!你节省了我的时间
<!-- ... -->
      <LinearLayout                     
                  android:layout_width="fill_parent"
                  android:layout_height="wrap_content"
                  android:background="@drawable/rounded_shape"
                  android:layout_marginLeft="30dip"
                  android:layout_marginRight="30dip">
            <ProgressBar
                    android:id="@+id/testSummaryProgressBar"
                    android:progress="10"
                    style="@style/ProgressBarStyle"/>
        </LinearLayout>
<!-- ... -->
<?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="#222" />
            <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>
<item android:id="@android:id/progress">
<clip>
  <layer-list>
       <-- transparent background  -->
   <item>
       <color android:color="#00000000" />
   </item>
   <-- padding -->
   <item  
      android:left="2dp"
      android:top="2dp"
      android:right="2dp"
      android:bottom="2dp">
    <shape>
        <corners android:radius="50dp" />

        <gradient
            android:angle="270"
            android:endColor="#9dfd6e"
            android:startColor="#16e61c" />
     </shape>
   </item>
  </layer-list>
</clip>