相关疑难解决方法(0)

如何在Android中创建循环进度条并在其上旋转?

我正在尝试创建一个圆形的进度条.这就是我想要实现的目标

有一个灰色背景环.在它的顶部,出现一个蓝色进度条,它在60或几秒钟内以0到360的圆形路径移动.

在此输入图像描述

这是我的示例代码.

<ProgressBar
            android:id="@+id/ProgressBar"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            style="?android:attr/progressBarStyleLarge"
            android:indeterminateDrawable="@drawable/progressBarBG"
            android:progress="50"
            />
Run Code Online (Sandbox Code Playgroud)

为此,在drawable"progressBarBG"中,我创建了一个图层列表,在该图层列表中,我给出了两个项目,如图所示.

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@android:id/background">
    <shape
            android:shape="ring"
            android:innerRadius="64dp"
            android:thickness="8dp"
            android:useLevel="false">

        <solid android:color="@color/grey" />
    </shape>
</item>

<item android:id="@android:id/progress">
    <clip>
        <shape
                android:shape="ring"
                android:innerRadius="64dp"
                android:thickness="8dp"
                android:useLevel="false">

            <solid android:color="@color/blue" />
        </shape>
    </clip>
</item>
Run Code Online (Sandbox Code Playgroud)

现在,第一个灰色环很好.然而,蓝色环从drawable的左侧开始向右移动,就像线性进度条的工作原理一样.这是它显示50%进度的方式,红色箭头显示方向.

在此输入图像描述

我想按预期在圆形路径中移动蓝色进度条.

android progress-bar

135
推荐指数
9
解决办法
20万
查看次数

ProgressBar/ProgressDialog的自定义Drawable

阅读Google提供的有限文档后,我感觉可以通过简单地创建一个新样式并将其分配给ProgressBar的样式属性来更改ProgressBar/ProgressDialog的外观(可绘制).但我不能让它正常工作.这是我到目前为止所做的:

我创建了这样的形状(mp2.xml)

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
  android:shape="ring"
  android:innerRadiusRatio="4"
  android:thicknessRatio="4"
  android:useLevel="false">
 <size android:width="50dip" android:height="50dip" />
 <gradient android:type="sweep" android:useLevel="false" android:startColor="#300000ff" android:centerColor="#500000ff" android:endColor="#ff0000ff" />
</shape>
Run Code Online (Sandbox Code Playgroud)

然后像这样创建了一个动画(mp3.xml):

<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="false">
 <item android:duration="70">
  <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0" android:toDegrees="30" android:repeatCount="1" />
 </item>
 <item android:duration="70">
  <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="30" android:toDegrees="60" android:repeatCount="1" />
 </item>
 <item android:duration="70">
  <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="60" android:toDegrees="90" android:repeatCount="1" />
 </item>
 <item android:duration="70">
  <rotate xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/mp2" android:pivotX="50%" android:pivotY="50%" android:fromDegrees="90" android:toDegrees="120" android:repeatCount="1" />
 </item>
 <item android:duration="70"> …
Run Code Online (Sandbox Code Playgroud)

android progressdialog progress-bar

122
推荐指数
6
解决办法
16万
查看次数

角点不适用于 Android 可绘制的环形

我正在尝试实现一个简单的圆形进度条。它工作正常,但我似乎无法使进度圆的角变圆。

我正在努力实现这样的目标:在此输入图像描述

我的代码:

<?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
            android:thickness="3dp"
            android:shape="ring"
            android:type="sweep"
            android:useLevel="false">

            <solid android:color="@color/light_grey"/>
        </shape>
    </item>

    <item android:id="@android:id/progress">
        <rotate
            android:fromDegrees="270"
            android:toDegrees="270">

            <shape
                android:thickness="3dp"
                android:shape="ring"
                android:type="sweep"
                android:useLevel="true">

                <solid android:color="@color/green"/>
                <corners android:radius="8dp"/> // --> this has no effect whatsoever
            </shape>
        </rotate>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

xml android android-layout progress-bar android-drawable

5
推荐指数
1
解决办法
2597
查看次数

如何绘制部分位图弧?像圆形进度轮一样,但是位图越来越多地显示出来.

我正在寻找的是一个以顺时针方式显示图像的视图.当进度为25%时,应显示前90度,当其100%时,应绘制全部360度.

它非常接近使用canvas.drawArc(),但此方法仅适用于Paint对象,而不适用于位图.

其他答案也只适用于全彩色: 如何在Android中制作圆形自定义进度条

我发现这是一个非常难的问题,我希望有人有解决方案.

android bitmap progress clip automatic-ref-counting

3
推荐指数
1
解决办法
2970
查看次数