Jelly Bean を対象とした新しいアプリケーションを Eclipse で作成しました。これはすべて自動的に作成されたコードです。マニフェストは、アプリケーション テーマを AppName に設定します。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
. . .
これは、値ディレクトリのスタイルの AppBaseTheme に変換されます。
<resources xmlns:android="http://schemas.android.com/apk/res/android">
<!--
Base application theme, dependent on API level. This theme is replaced
by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Light">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
</style>
</resources>
そして、values-v14/styles.xml は次のとおりです。
<resources>
<!--
Base application theme for API 14+. This theme completely replaces
AppBaseTheme from BOTH res/values/styles.xml and
res/values-v11/styles.xml on API 14+ devices.
-->
<style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar">
<!-- API 14 theme customizations can go here. -->
</style>
</resources>
次に、終了する前に確認ダイアログ ボックスを作成しました。
case R.id.menu_quit:
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle(R.string.confirm_title)
.setMessage(R.string.confirm_text)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
結果のダイアログ ボックスは次のようになります。
ic_dialog_icon がとても軽いのはなぜですか? かろうじて見えます。私はすべてデフォルトを使用しています。テーマや色は変更していません。システムは背景とのコントラストが強いアイコンを選択するべきではありませんか? どうすれば修正できますか?
修正して編集
Tomik 情報に従って、android.R.attr.alertDialogIconのドキュメントを読み、この修正を行いました ( setIcon()をsetIconAttribute( ) に置き換えました) 。
new AlertDialog.Builder(this)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setTitle(R.string.confirm_title)
.setMessage(R.string.confirm_text)
.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
ダイアログは次のようになります。