其他分享
首页 > 其他分享> > 如何使用android中的进度条填充图像

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

作者:互联网

我正在研究一个项目,它需要填写图像.意味着我想将图像形状用作进度条.我不知道如何使用自定义进度条.这是一个图像,它是一个图像按钮.

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

 

这为0%的进展:

解决方法:

您需要了解可绘制资源.

Drawable Resources | Android Developers

您可以使用图层列表和Clip Drawable执行此操作.

首先,我们来谈谈关卡.每个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.

标签:android,android-studio,android-progressbar,fill
来源: https://codeday.me/bug/20190717/1487641.html