我正在开发一个项目,它需要填充图像。意味着我想将图像形状用作进度条。我不知道如何使用自定义进度条。这是一个图像及其图像按钮。
所以这是进度为100%的时候:
这是0%的进展:
答案 0 :(得分:10)
您需要了解可绘制资源。
Drawable Resources | Android Developers
您可以使用图层列表和剪辑可绘制来执行此操作。
首先,我们来谈谈关卡。每个drawable都有一个从0到10000的级别。该级别可用于修改drawable的外观。
让我们从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"/>
既然你已经在向上显示,你想要将灰色的心显示为背景,这样看起来灰心变红了。您可以使用图层列表覆盖两个drawable。
/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>
现在您将此drawable分配给视图的背景。它也可能是ImageView
的src。
<View
android:background="@drawable/progress_heart"
...
现在您可以像这样设置drawable的级别:
int level = 100 * pct; // pct goes from 0 to 100
view.getBackground().setLevel(level)
哦,顺便说一句,你甚至不需要ProgressBar
。