Aru*_*ole 27 android android-layout progress-bar
我ProgressBar在我的Activty中使用循环.我的问题是它在我的页面上看不到,因为我的页面的BG颜色与ProgressBar相同.那么如何更改ProgressBar的颜色以使其正常可见?请帮忙
Chi*_*rag 48
请创建一个xml文件名progress.xml并将其放在res/xml文件夹中,并在该xml文件中写下以下代码.
<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
android:pivotX="50%" android:pivotY="50%" android:fromDegrees="0"
android:toDegrees="360">
<shape android:shape="ring" android:innerRadiusRatio="3"
android:thicknessRatio="8" android:useLevel="false">
<size android:width="76dip" android:height="76dip" />
<gradient android:type="sweep" android:useLevel="false"
android:startColor="#447a29"
android:endColor="#447a29"
android:angle="0"
/>
</shape>
</rotate>
Run Code Online (Sandbox Code Playgroud)
创建此xml文件后,将progressbars背景设置为此xml ..
<ProgressBar
android:id="@+id/ProgressBar01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background = "@xml/progress">
Run Code Online (Sandbox Code Playgroud)
Nav*_*r M 33
这是一个老问题,但这里没有提到使用主题.如果您的默认主题正在使用AppCompat,您ProgressBar的颜色将是colorAccent您已定义的颜色.
改变colorAccent也会改变你ProgressBar的颜色,但这些改变也反映在多个地方.因此,如果您只想为特定的颜色设置不同的颜色,则ProgressBar可以通过将主题应用于此ProgressBar来实现:
扩展您的默认主题并覆盖 colorAccent
<style name="AppTheme.WhiteAccent">
<item name="colorAccent">@color/white</item> <!-- Whatever color you want-->
</style>
Run Code Online (Sandbox Code Playgroud)并ProgressBar添加android:theme属性:
android:theme="@style/AppTheme.WhiteAccent"
Run Code Online (Sandbox Code Playgroud)所以它看起来像这样:
<ProgressBar
android:id="@+id/loading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:padding="10dp"
android:theme="@style/AppTheme.WhiteAccent" />
Run Code Online (Sandbox Code Playgroud)
所以你只是换一个colorAccent特定的ProgressBar.
注意:使用style不起作用.你android:theme只需要使用.您可以在此处找到更多主题用途:https://plus.google.com/u/0/+AndroidDevelopers/posts/JXHKyhsWHAH
编辑
以下是以编程方式更改ProgressBar颜色的代码.
ProgressBar progressBar = (ProgressBar) findViewById(R.id.pb_listProgressBar);
int colorCodeDark = Color.parseColor("#F44336");
progressBar.setIndeterminateTintList(ColorStateList.valueOf(colorCodeDark));
Run Code Online (Sandbox Code Playgroud)
小智 15
最简单的方法是使用android:indeterminateTint属性:
<ProgressBar
android:indeterminate="true"
android:indeterminateTint="@android:color/black"
........... />
Run Code Online (Sandbox Code Playgroud)
在 xml 中,您可以像这样应用颜色
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/loader"
android:indeterminateTint="@color/my_color"
android:layout_centerInParent="true"/>
Run Code Online (Sandbox Code Playgroud)
并粘贴这行代码:
android:indeterminateTint="@color/white"
Run Code Online (Sandbox Code Playgroud)
上面的示例允许您将进度条的颜色更改为白色。现在由您来调整它以适应您想要的颜色。
仅适用于 Android API >= 21
对我来说,这两行必须在那里才能工作并改变颜色:
android:indeterminateTint="@color/yourColor"
android:indeterminateTintMode="src_in"
Run Code Online (Sandbox Code Playgroud)
PS:但它仅适用于 android 21