我正在做一个项目,它需要填充图像。意味着我想使用图像形状作为进度条。我不知道如何使用自定义进度条。这是一张图片及其图片按钮。
所以这是进度为 100% 的时候:
这是 0% 的进度:
您需要了解可绘制资源。
Drawable Resources | Android Developers
您可以使用图层列表和剪辑可绘制对象执行此操作。
首先,让我们谈谈等级。每个可绘制对象都有一个从 0 到 10000 的级别。该级别可用于修改可绘制对象的外观。
让我们从 Clip Drawable 开始。 Clip Drawable 将根据其级别剪辑 drawable。这非常适合进度条样式。我假设您想在灰色的心形上从下往上画红色的心形。
/res/drawable/red_heart_clip.xml
<?xml version="1.0" encoding="utf-8"?>
<clip
xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/red_heart"
android:clipOrientation="horizontal"
android:gravity="bottom"/>
既然你已经在向上显示了,你想显示灰色的心作为背景,这样看起来灰色的心正在变成红色。您可以使用图层列表叠加两个可绘制对象。
/res/drawable/progress_heart.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/grey_heart"/>
<item android:drawable="@drawable/red_heart_clip"/>
</layer-list>
现在您将此可绘制对象分配给 View 的背景。它也可以是 ImageView
的 src。
<View
android:background="@drawable/progress_heart"
...
现在您可以像这样设置可绘制对象的级别:
int level = 100 * pct; // pct goes from 0 to 100
view.getBackground().setLevel(level)
哦,顺便说一句,您甚至不需要 ProgressBar
。
我是一名优秀的程序员,十分优秀!