我有一个使用ProgressBar类的progressBar.
这样做:
progressBar = new ProgressBar(this, null, android.R.attr.progressBarStyleHorizontal);
Run Code Online (Sandbox Code Playgroud)
我需要使用输入值来改变那个的颜色,如下所示:
int color = "red in RGB value".progressBar.setColor(color)
Run Code Online (Sandbox Code Playgroud)
或类似的东西...
我无法使用XML布局,因为进度条可以为用户自定义.
我正在浏览android的开发者网站,我发现了一个名为ContentLoadingProgressBar的类.看到这堂课,我脑子里想出了一些问题.如果有人回答我的问题会很棒.
ProgressBar和ContentLoadingProgressbar?有什么区别?我们可以根据我们的要求显示/隐藏此进度条吗?
我如何自定义这个progressBar的样式?
感谢您在Advance中提供的帮助.如果有人使用代码和示例解释它会很棒.谢谢.
我ProgressDialog用来显示进度条
ProgressDialog progressDialog = new ProgressDialog(context);
progressDialog.setCancelable(false);
progressDialog.setMessage(message);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.show();
Run Code Online (Sandbox Code Playgroud)
它就是这样的
我想将圆圈的绿色更改为红色.有什么办法吗?
我试过了
.getIndeterminateDrawable().setColorFilter(0xFFFFFFFF, android.graphics.PorterDuff.Mode.MULTIPLY);
Run Code Online (Sandbox Code Playgroud)
但不行.
我ProgressBar在我的Activty中使用循环.我的问题是它在我的页面上看不到,因为我的页面的BG颜色与ProgressBar相同.那么如何更改ProgressBar的颜色以使其正常可见?请帮忙
我想改变Horizontal ProgressBar颜色
我试过这个
它不能正常运行蓝色
这是我的代码
<ProgressBar
android:id="@+id/mini_progress"
android:layout_marginLeft="10dip"
android:layout_marginRight="10dip"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="20dip"
android:layout_gravity="center_horizontal"
android:indeterminate="false"
android:indeterminateBehavior="repeat"
android:indeterminateOnly="true"
android:visibility="gone"/>
Run Code Online (Sandbox Code Playgroud)
我怎么能把颜色变成粉红色?
Android有一个标准的ProgressBar,在不确定时会有一个特殊的动画.还有很多可用的进度视图库(这里).
在我搜索过的所有内容中,我找不到办法做一件非常简单的事情:
具有从颜色X到颜色Y的渐变,水平显示,并在X坐标中移动,以便X之前的颜色将变为颜色Y.
例如(只是一个插图),如果我有一个蓝色< - >红色的渐变,从边缘到边缘,它将如此:
我在StackOverflow上尝试了一些解决方案:
但遗憾的是,它们都是关于Android的标准ProgressBar视图,这意味着它有一种不同的方式来显示drawable的动画.
我也试过在Android Arsenal网站上找到类似的东西,但即使有很多不错的东西,我找不到这样的东西.
当然,我可以自己动画2个视图,每个视图都有自己的渐变(一个与另一个相反),但我确信有更好的方法.
有可能使用Drawable或它的动画,这使得渐变(或其他任何东西)以这种方式移动(当然重复)?
也许只是从ImageView扩展并在那里制作drawable动画?
是否也可以设置容器将用于重复可绘制的多少?我的意思是,在上面的例子中,它可能是从蓝色到红色,所以蓝色将在边缘,红色将在中间.
编辑:
好的,我已经取得了一些进展,但是我不确定这个动作是否正常,而且我认为它的速度不一致,以防万一CPU有点忙,因为它不考虑帧丢失.我所做的是将2个GradientDrawables一个接一个地绘制,如下:
class HorizontalProgressView @JvmOverloads constructor(
context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0
) : View(context, attrs, defStyleAttr) {
private val speedInPercentage = 1.5f
private var xMovement: Float = 0.0f
private val rightDrawable: GradientDrawable = GradientDrawable()
private val leftDrawable: GradientDrawable = GradientDrawable()
init {
if (isInEditMode)
setGradientColors(intArrayOf(Color.RED, Color.BLUE))
rightDrawable.gradientType = GradientDrawable.LINEAR_GRADIENT;
rightDrawable.orientation …Run Code Online (Sandbox Code Playgroud) 我有一个具有以下样式的进度条: style="?android:attr/android:progressBarStyleSmall"
可悲的是,酒吧几乎是白色的,在我的情况下显示在白色背景上.因此,进度条几乎不可见.
如何更改进度条的颜色?深灰色会很棒.
当背景为白色时,Android上的默认进度轮显示效果不佳,几乎看不到.我怎样才能解决这个问题?
在很高的层次上,我已经完成了几种类型的进度条样式,但是当我试图让它们变瘦时它们都很难看.
我正在寻找一个跳转开始教程或布局,它将提供一个看起来类似于下图的条形图

有任何想法吗?如果我让他们工作,我会很高兴发布结果.
我使用以下行更改VectorDrawable的颜色:
mydrawable.getBackground().setColorFilter(color, PorterDuff.Mode.SRC_ATOP)
尽管现在已不推荐使用,但效果很好。该文档建议我使用:
mydrawable.getBackground().setColorFilter(new BlendModeColorFilter(color, PorterDuff.Mode.SRC_ATOP))
虽然,BlendModeColorFilter仅在API29上可用。在检查了不赞成使用的方法的源之后,我意识到它调用了:
new PorterDuffColorFilter()
因此,我继续使用:
mydrawable.getBackground().setColorFilter(new PorterDuffColorFilter(color, PorterDuff.Mode.SRC_ATOP))
着色工作。这是不推荐使用的方法的正确替代方法,还是我必须在API29上使用BlendModeColorFilter?
谢谢。