代码之家  ›  专栏  ›  技术社区  ›  charan reddy

显示完整进度的Android水平渐变进度条

  •  0
  • charan reddy  · 技术社区  · 7 年前

    可提取进度的进度条未显示正确的进度。它显示完全进度,而不是设置进度值。

     <ProgressBar
           style="@style/Widget.AppCompat.ProgressBar.Horizontal"
           android:layout_centerVertical="true"
           android:layout_toRightOf="@id/rewardScore"
           android:layout_width="match_parent"
           android:id="@+id/userProgress"
           android:max="100"
           android:background="@drawable/progress_white_bg"
           android:layout_marginLeft="10dp"
           android:layout_height="10dp"
           android:progress="40"
           android:progressDrawable="@drawable/gradient_progress"
        />
    

    gradient_drawable.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>
    
            <corners android:radius="100dp"/>
            <gradient
                android:startColor="@color/white"
                android:endColor=  "@color/white"
                />
            </shape>
         </item>
    
         <item android:id="@android:id/progress">
           <shape>
             <corners android:radius="100dp"/>
    
            <gradient
                android:startColor="@color/progress_gradient_one"
                android:endColor="@color/progress_gradient_two"
                />
           </shape>
        </item>
    </layer-list>
    
    1 回复  |  直到 7 年前
        1
  •  3
  •   Arti Patel    7 年前

    问题在渐变进程中可提取。在渐变中设置此属性 第二项标签:android:useLevel=“true”:

    <?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="1dp" />
            <gradient
                android:endColor="#fff"
                android:startColor="#fff" />
        </shape>
    </item>
    
    <item android:id="@android:id/progress">
        <shape>
            <corners android:radius="1dp" />
            <gradient
                android:endColor="#6aae33"
                android:startColor="#e61313"
                android:useLevel="true" />
        </shape>
    </item>
    

        2
  •  0
  •   Cristian Mataoanu    5 年前

    诀窍在于 <clip>

    <?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="100dp"/>
            <gradient
                android:startColor="@color/white"
                android:endColor=  "@color/white"
                />
            </shape>
         </item>
    
         <item android:id="@android:id/progress">
           <clip>
             <shape>
               <corners android:radius="100dp"/>
    
               <gradient
                   android:startColor="@color/progress_gradient_one"
                   android:endColor="@color/progress_gradient_two"
                />
             </shape>
           </clip>
        </item>
    </layer-list>