gpt4 book ai didi

android - 如何在android中使用进度条填充图像

转载 作者:太空宇宙 更新时间:2023-11-03 11:47:31 25 4
gpt4 key购买 nike

我正在做一个项目,它需要填充图像。意味着我想使用图像形状作为进度条。我不知道如何使用自定义进度条。这是一张图片及其图片按钮。

所以这是进度为 100% 的时候:

first image

这是 0% 的进度:

second image

最佳答案

您需要了解可绘制资源。

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

关于android - 如何在android中使用进度条填充图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39885527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com