其他分享
首页 > 其他分享> > Android – 在Lollipop前设备上设置ProgressBar

Android – 在Lollipop前设备上设置ProgressBar

作者:互联网

我的应用程序的最低API级别是19(KitKat),并包含一个带有水平ProgressBar的布局.我正在使用android:progressTint属性将条形色调为自定义颜色.它在Lollipop(API 21)及更高版本上运行良好,但在下面(例如在API 19上)它没有;它以不同的颜色显示出来.原因是这个属性

is only used in API level 21 and higher

正如Android Studio所述.

所以我想知道什么是在Lollipop前设备上对ProgressBar进行着色的好方法.可以使用XML在布局文件中创建吗?或者应该以不同的方式完成?

编辑#1:我的ProgressBar用于显示百分比的具体值,而不是用于指示我的布局正在加载.我想明确这一点,因为在尝试了Kuldeep Kulkarni在下面写的内容之后,我的酒吧看起来像一个材料加载指示器(当然在Lollipop设备上,而不是KitKat设备上的任何可见结果).

解决方法:

您可以使用ProgressBar indeterminateDrawable方法包装前Lollipop.

if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {

     Drawable drawableProgress = DrawableCompat.wrap(progressBar.getIndeterminateDrawable());
     DrawableCompat.setTint(drawableProgress, ContextCompat.getColor(getContext(), android.R.color.holo_green_light));
     progressBar.setIndeterminateDrawable(DrawableCompat.unwrap(drawableProgress));

} else {
    progressBar.getIndeterminateDrawable().setColorFilter(ContextCompat.getColor(getContext(), android.R.color.holo_green_light), PorterDuff.Mode.SRC_IN);
}

标签:android,android-layout,android-progressbar,android-api-levels
来源: https://codeday.me/bug/20191005/1856971.html