如何在 android 中使用进度条填充图像
how to fill images using progressbar in android
我正在做一个项目,它需要填充图像。意味着我想使用图像形状作为进度条。我不知道如何使用自定义进度条。这是一张图片及其图片按钮。
这是进度为 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>
现在您将此可绘制对象分配给视图的背景。它也可以是 ImageView
.
的 src
<View
android:background="@drawable/progress_heart"
...
现在您可以像这样设置可绘制对象的级别:
int level = 100 * pct; // pct goes from 0 to 100
view.getBackground().setLevel(level)
哦,顺便说一句,你甚至不需要 ProgressBar
。
我正在做一个项目,它需要填充图像。意味着我想使用图像形状作为进度条。我不知道如何使用自定义进度条。这是一张图片及其图片按钮。
这是进度为 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>
现在您将此可绘制对象分配给视图的背景。它也可以是 ImageView
.
<View
android:background="@drawable/progress_heart"
...
现在您可以像这样设置可绘制对象的级别:
int level = 100 * pct; // pct goes from 0 to 100
view.getBackground().setLevel(level)
哦,顺便说一句,你甚至不需要 ProgressBar
。