android - 圆形进度条内的圆形进度

标签 android android-progressbar

我正在尝试在我们正在开发的应用中创建自定义进度条,而我需要的最后一 block 是进度指示器本身。相反,我希望该栏像进度条本身的左右边缘一样圆润,就像在第二张图片中一样(当然减去红色圆圈)。

enter image description here

enter image description here

这是进度条的布局定义(为简洁起见,布局文件的其余部分省略):

<ProgressBar
    android:id="@+id/progress_bar"
    android:layout_width="fill_parent"
    android:layout_height="60dp"
    android:padding="3dp"
    android:max="100"
    android:progressDrawable="@drawable/progress_bar_states"
    android:layout_marginTop="10dp"
    style="?android:attr/progressBarStyleHorizontal"
    android:indeterminateOnly="false"
    android:layout_below="@id/textview2"
    android:layout_alignLeft="@id/textview2"
    />

这里是progress_bar_states.xml 文件:

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

    <item android:id="@android:id/background">
        <shape>
            <solid android:color="#20ffff00"/>
            <corners android:radius="60dp"/>
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <clip>
            <shape>
                <solid android:color="#20ffffff"/>
                <corners android:radius="60dp"/>
            </shape>
        </clip>
    </item>

</layer-list>

我该怎么做?我根本看不到任何允许我定义进度指示器的选项。我应该以不同的方式这样做吗?我对 Android 还是很陌生,因此我们非常感谢任何指导。

@Ando - 您的解决方案非常接近我的需要。指标运动的开始是现在的问题,我猜这是因为它不像原始剪辑那样。当指标开始时,直到开始的某个点,它看起来像是被“挤压”了

enter image description here

直到它到达适当的点然后它看起来很好:

enter image description here

我们如何使用这个解决方案在开始时完成“剪辑”?

对于@bladefury - 如您所见,与上图的前缘相比,它确实看起来是扁平的。

enter image description here

编辑:在很长一段时间没有看这个之后,我在 https://github.com/akexorcist/Android-RoundCornerProgressBar/issues 上查看了一个新组件,和这里的建议有同样的问题。

最佳答案

只需更改您的 progress_bar_states.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>
        <solid android:color="#20ffff00" />

        <corners android:radius="20dp" />
    </shape>
</item>
<item android:id="@android:id/progress">

    <!-- <clip> -->
    <!-- <shape> -->
    <!-- <solid android:color="@android:color/black" /> -->


    <!-- <corners -->
    <!-- android:bottomRightRadius="30dp" -->
    <!-- android:radius="60dp" -->
    <!-- android:topRightRadius="30dp" /> -->
    <!-- </shape> -->
    <!-- </clip> -->

    <scale
        android:drawable="@drawable/custom_progress_primary"
        android:scaleWidth="98%" /><!-- change here -->
</item>

这里是 custom_progress_primary.xml 文件:如下所示

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<corners
    android:radius="20dp"
    android:topLeftRadius="20dp"
    android:topRightRadius="20dp" />

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

<stroke
    android:width="1dp"
    android:color="@android:color/darker_gray" />

</shape>

关于android - 圆形进度条内的圆形进度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25130359/

相关文章:

android - 避免内存不足错误的最佳方法 - Android

java - 我正在尝试使用我的注册页面中的共享首选项并在另一个类上检索它,但它在 logcat 中给了我错误

android - android studio 0.8.14 beta 不支持 Path.approximate()

android - 如何在样式表中指定 progressBarStyleHorizo​​ntal 属性

android - 更新 ListView 中的进度条

Android:我应该使用什么来运行后台长期 Activity ?

android - Facebook session 权限 Android

android - 无法设置远程报价 sdp : Called with SDP without SDES crypto

android - 如何使用后退按钮在加载之前关闭进度条?

android - 如何创建一个重复的动画移动渐变drawable,就像一个不确定的进度?