Android开发中Progress需要两边都是圆角怎么办?
怪我咯
怪我咯 2017-04-17 15:06:28
0
2
890

这里的两边都是圆角,指的是progressbar的progress部分
比如,需要这个效果:

如果使用shape,progress的右边是直角,所以使用了.9图
但是实际中,设置progress为10了之后(max为100),整体还是很宽,感觉像是progress属性不能用了

原始界面文件中的使用:

<ProgressBar
        android:id="@+id/live_channel_progres"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="112dp"
        android:layout_height="15dp"
        android:max="100"
        android:progress="10"
        android:progressDrawable="@drawable/progress_bg" />

progress的drawable:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
 
    <!-- 背景  gradient是渐变,corners定义的是圆角 -->
    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="30dp" />
 
            <solid android:color="#ff0" />
        </shape>
    </item>
    <!-- 进度条 -->
    <item android:id="@android:id/progress" android:drawable="@drawable/live_channel_progress"/>
    
 
</layer-list>
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(2)
Ty80

解決了,我問題問的可能不清楚,導致有人理解錯了,目前需求是:

需要progress的進度部分兩邊都是圓角

使用shape一開始就試過了,沒用的
一樓的答案,我照搬試了一下,跟我最開始的效果一樣

使用.9圖的話,可以規避這個問題,只需要把問題中:

<!-- 进度条 -->
    <item android:id="@android:id/progress" android:drawable="@drawable/live_channel_progress"/>

這部分改一下即可:

<!-- 进度条 -->
    <item android:id="@android:id/progress">
         <scale android:scaleWidth="100%"
               android:drawable="@drawable/live_channel_progress" />
    </item>

這是因為Progressbar在繪製的時候會clip一下,如果你指定了clip屬性,右邊一定會被截成直角,所以要在item裡使用scale,配合.9圖就完美了。

http://stackoverflow.com/questions/2078809/progress-bar-rounded-on-both-sides-in-android

迷茫
   <ProgressBar
          android:id="@+id/progressBar"
          android:layout_width="160dp"
          android:layout_height="7dp"
          style="@style/ProgressBar_Validity"
      />

style:

   <style name="ProgressBar_Validity" parent="@android:style/Widget.ProgressBar.Horizontal">
        <item name="android:indeterminateOnly">false</item>
        <item name="android:indeterminateDrawable">@android:drawable/progress_indeterminate_horizontal</item>
        <item name="android:progressDrawable">@drawable/progress_validity</item>
    </style>

progress_validity:

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

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

        <clip >
            <shape >
                <corners android:radius="6dip" />
                <solid android:color="#EAEAEA"/>
            </shape>
        </clip>
    </item>

    <item android:id="@android:id/progress">
        <clip >
            <shape >
                <corners android:radius="6dip" />
                <solid android:color="#03A9F4"/>
            </shape>

        </clip>
    </item>
</layer-list> 

排版有問題 自己理一下。 。親測對的。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!