【问题标题】:Why circular progressBar background not showing?为什么圆形progressBar背景不显示?
【发布时间】:2016-05-13 09:09:24
【问题描述】:

这是我的 style_circular_fill.xml 文件

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/progress">
    <rotate
        android:fromDegrees="270"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="270" >
        <shape
            android:innerRadiusRatio="3"
            android:shape="ring"
            android:thicknessRatio="14.0"
            android:useLevel="true">
            <gradient
                android:centerColor="#A9E2F3"
                android:endColor="#A9E2F3"
                android:startColor="#A9E2F3"
                android:type="sweep" />
        </shape>
    </rotate>
</item>

<item android:id="@android:id/background">
    <shape
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="14.0"
        android:useLevel="false">

        <gradient
            android:centerColor="#FFF"
            android:endColor="#FFF"
            android:startColor="#FFF"
            android:type="sweep" />

    </shape>
</item>

这是我的 activity.xml 文件中的进度条

<ProgressBar
    android:id="@+id/progressBar1"
    style="?android:attr/progressBarStyleHorizontal"
    android:layout_width="300dp"
    android:layout_height="300dp"
    android:indeterminate="false"
    android:progressDrawable="@drawable/style_circular_fill"
    android:max="100"
    android:progress="10" />

结果如下:

我不知道为什么白色圆圈背景没有出现...... 我在这两个 .xml 文件中做错了什么吗?

【问题讨论】:

  • 可以设置背景色为透明,一些例子here

标签: android android-progressbar


【解决方案1】:

您可以使用this 库作为您的材料设计进度条。

例如:

<me.zhanghai.android.materialprogressbar.MaterialProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminate="true"
app:mpb_progressStyle="horizontal"
style="@style/Widget.MaterialProgressBar.ProgressBar.Horizontal" />

【讨论】:

    【解决方案2】:

    我已将您的选择器分成 2 个不同的可绘制对象,并将一个设置为背景,另一个设置为 progressDrawable,它似乎工作正常。

    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleHorizontal"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:indeterminate="false"
        android:progressDrawable="@drawable/style_circular_fill"
        android:background="@drawable/background_circular"
        android:max="100"
        android:progress="20" />
    

    在 style_circular_fill 中:

    <rotate xmlns:android="http://schemas.android.com/apk/res/android"
        android:fromDegrees="270"
        android:pivotX="50%"
        android:pivotY="50%"
        android:toDegrees="270" >
        <shape
            android:innerRadiusRatio="3"
            android:shape="ring"
            android:thicknessRatio="14.0"
            android:useLevel="true">
            <gradient
                android:centerColor="#A9E2F3"
                android:endColor="#A9E2F3"
                android:startColor="#A9E2F3"
                android:type="sweep" />
        </shape>
    </rotate>
    

    在后台循环中:

    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:innerRadiusRatio="3"
        android:shape="ring"
        android:thicknessRatio="14.0"
        android:useLevel="false">
    
        <gradient
            android:centerColor="#FFF"
            android:endColor="#FFF"
            android:startColor="#FFF"
            android:type="sweep" />
    
    </shape>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 2013-09-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多