2016-04-15 8 views
1

ボタンを押すと、ProgressDialogが表示されます。Androidの不確定進捗ダイアログのプログレスバーのスタイル

ProgressDialog progressDialog = new ProgressDialog(MainActivity.this); 
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER); 
progressDialog.setIndeterminate(false); 
progressDialog.setCancelable(false); 
progressDialog.setCanceledOnTouchOutside(false); 
progressDialog.show(); 

アプリのスタイルがある:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
    <item name="colorPrimary">@color/colorPrimary</item> 
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item> 
    <item name="colorAccent">@color/colorAccent</item> 
</style> 

そして最後のGradleファイル:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 23 
    buildToolsVersion "23.0.3" 

    defaultConfig { 
     applicationId "example.com.progressbarcolor" 
     minSdkVersion 16 
     targetSdkVersion 23 
     versionCode 1 
     versionName "1.0" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    testCompile 'junit:junit:4.12' 
    compile 'com.android.support:appcompat-v7:23.3.0' 
} 

あなたは、両方のアプリケーション下の画像の上に見ることができるように、直接、レイアウト内で使用されたときと同じプログレスバーを表示しますが、色は、ProgressDialog内部異なっています。

Android 22の場合、進捗状況ダイアログに赤色の代わりに緑色の進行状況バーが表示されます。

ネクサス5、API 22

Nexus 5 - API 22

ネクサス5X、API 23

Nexus 5X - API 23

+0

AFAIK appcompatライブラリはProgressDialogのProgressBarスタイルを決して変更しません...独自のダイアログを構築する必要があります... – Selvin

+0

異なるstyles.xmlに異なるテーマがありますか? –

+0

すべてのバージョンに1つのテーマしかありません。 – aguyngueran

答えて

5

は、あなたのスタイルでこれを追加します。

<style name="MyAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog"> 
     <!-- Used for the buttons --> 
     <item name="colorAccent">@color/colorAccent</item> 
     <!-- Used for the title and text --> 
     <item name="android:textColorPrimary">@color/colorPrimaryDark</item> 
     <!-- Used for the background --> 
     <item name="android:background">@android:color/transparent</item> 
    </style> 

、ダイアログに設定を:

ProgressDialog progressDialog = new ProgressDialog(MainActivity.this, R.style.MyAlertDialogStyle); 
+0

進捗状況に変更を適用するように見えますが、ダイアログは利用可能な幅全体に広がっていません。アンドロイド19では、さらに悪化しています。 – aguyngueran

+0

​​ @アンドロイド:color/transparent​​ @ android:color/transparentは境界線を修正します。 – Yar

関連する問題