如何在android中以编程方式设置默认进度Dialog Spinner颜色

时间:2016-08-27 10:22:14

标签: java android

我正在尝试更改默认进度对话框微调器颜色..但我去了一些教程但没有用的

    progressDialog.setMessage("Loading...");
    progressDialog.setIndeterminate(true);
    progressDialog.setCancelable(false);
    progressDialog.show();

3 个答案:

答案 0 :(得分:2)

尝试这个,但我没有加载文字......

final ProgressDialog dialog = ProgressDialog.show(MainActivity.this, null, null);
        ProgressBar spinner = new android.widget.ProgressBar(MainActivity.this, null,android.R.attr.progressBarStyle);
        spinner.getIndeterminateDrawable().setColorFilter(Color.parseColor("#53CBF1"), android.graphics.PorterDuff.Mode.SRC_IN);
        dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
        dialog.setContentView(spinner);
        dialog.setCancelable(false);
        dialog.show();

答案 1 :(得分:1)

  

在您的主题`

中更改 colorAccent
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="colorAccent">@color/yourcolor</item>
</style>
  

对于21以下的所有设备支持,您可以使用自定义布局的代码来进行对话...

<强> custom_progressdialog.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:id="@+id/rl"
    android:padding="5dp"

>

    <ProgressBar
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@android:color/transparent"
    android:id="@+id/progressbar"
        android:layout_centerVertical="true"

        />
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Loading..."
        android:layout_toRightOf="@+id/progressbar"
        android:layout_centerVertical="true"
        />

</RelativeLayout>

<强>代码

    progressDialog=new ProgressDialog(demo.this);
    progressDialog.show();
    progressDialog.setContentView(R.layout.custom_progressdialog);
    ProgressBar progressbar=(ProgressBar)progressDialog.findViewById(R.id.progressbar);
    progressbar.getIndeterminateDrawable().setColorFilter(Color.parseColor("#C60000"), android.graphics.PorterDuff.Mode.SRC_IN);
    progressDialog.setCancelable(true);

答案 2 :(得分:0)

第1步:

在res目录中,创建1个XML文件并将其命名为progress.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> 

第2步:

android:startColorandroid:endColor修改为您想要的颜色。

第3步:

在ProgressBar的后台设置progress.xml。

<ProgressBar
  android:id="@+id/ProgressBar01" 
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:background ="@xml/progress">

回答基于This Page,Chirag Raval。