web-dev-qa-db-ja.com

設定の背景色を変更する

PreferenceCategory、xmlファイルがあり、その中ですべての設定を定義しました。PreferenceActivityを拡張するクラスからこれを呼び出します。設定画面の背景を設定できません。この画面は、以下に示すxmlファイルの助けを借りて表示されます。 Android:background="#041A37"をすでに定義していることを確認してください。それでも画面はデフォルトの色である黒のままです。

public class MyPreferenceActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        Context mContext=super.getBaseContext();
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.layout.preference);
        //v.setBackgroundColor(Color.rgb(4, 26, 55));
    }
}

preference.xmlは

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:background="#041A37" >

    <PreferenceCategory>
        <com.dropcall.SeekBarPreference
            Android:background="#041A37"
            Android:defaultValue="5"
            Android:key="@string/Interference_Delay"
            Android:progressDrawable="@drawable/seekbardrawable"
            Android:title="Seconds Delay until intereference" />

        <com.dropcall.SeekBarPreference2
            Android:defaultValue="30"
            Android:key="@string/Drop_Delay"
            Android:progressDrawable="@drawable/seekbardrawable"
            Android:title="Seconds delay until drop" />

        <CheckBoxPreference
            Android:background="@drawable/state_normal"
            Android:defaultValue="true"
            Android:key="@string/Drop_Option"
            Android:title="Close after call drop" />
        <CheckBoxPreference
            Android:background="@drawable/state_normal"
            Android:defaultValue="true"
            Android:key="@string/Timer_Option"
            Android:title="Start timers on launch" />
    </PreferenceCategory>

</PreferenceScreen>

すべてのファイルにAndroid:background="#041A37"を設定しましたが、背景が紺色やその他の色に変わることはありません。デフォルトの色である黒のままです。背景色を変更する方法。あなたが同じ問題に直面していた場合、私はすべてのポインタ/ヒントを教えてください、背景色を設定するためにあなたが行った変更を教えてください。

52
David Prun

これは私のために働いた

getListView().setBackgroundColor(Color.TRANSPARENT);

getListView().setCacheColorHint(Color.TRANSPARENT);

getListView().setBackgroundColor(Color.rgb(4, 26, 55));
44
David Prun

テーマを定義して、マニフェストのPreferenceActivityに設定できます。その後、テーマで背景色またはwindowBackgroundイメージを定義できます。

マニフェスト:

    <activity Android:label="@string/app_label" Android:name=".client.PreferencesActivity"
        Android:theme="@style/PreferencesTheme">
        <intent-filter>                                
        </intent-filter>
    </activity>

次に、テーマをstyles.xmlに追加します

<style name="PreferencesTheme">
    <item name="Android:windowBackground">@drawable/background_image</item>
    <item name="Android:background">#FFEAEAEA</item>
</style>

上記のスニペットには、その方法を示すために定義された背景色と背景画像の両方があります。

77
AndreasW

色に関する限り、別の回避策は、設定アクティビティのテーマを作成し、リストビューの背景色も設定することです。

<style name="PrefsTheme" parent="@Android:style/Theme.Black.NoTitleBar">
    <item name="Android:windowBackground">@color/prefs_bg</item>
    <item name="Android:textColor">@color/text_color</item>
    <item name="Android:listViewStyle">@style/listViewPrefs</item>
</style>

<style name="listViewPrefs" parent="@Android:style/Widget.ListView">
    <item name="Android:background">@color/prefs_bg</item>
    <item name="Android:cacheColorHint">@color/prefs_bg</item>
</style>
21
Sileria

documentation によれば、Android:backgroundは利用可能な属性ではありません。

PreferenceActivityをテーマにして色の変更を実現できますが、アプリの使いやすさを向上させるために、他のAndroidの設定と同じように設定するため、これを試していません。

6
CommonsWare

または、背景として描画可能にすることもできます。

getListView()。setBackgroundDrawable(getResources()。getDrawable(R.drawable.bluegradient));

注:setBackgroundDrawable()は非推奨です。代わりにsetBackground()を使用してください。

getListView()。setBackground(getResources()。getDrawable(R.drawable.bluegradient));

4
Rootko

Textviewが添付された線形レイアウトを指定し、背景色を指定し、layoutプロパティを使用してこのXMLをpreferencecategoryに添付してください。

<PreferenceCategory
     Android:layout="@layout/preftitle"
 >

Preftitleは、線形レイアウトとテキストビューが添付されたxmlです。

0
madhavi

res>values>styles.xml>に移動し、このコードを<style > </style>に追加します。スタイルは、この@color/activがアプリのベーステーマでなければなりません。

<style name="app_theme" parent="@Android:style/Theme">
    <item name="Android:windowBackground">@color/activ</item>
    <item name="Android:windowContentOverlay">@drawable/title_bar_shadow</item>
    <item name="Android:listViewStyle">@style/TransparentListView</item>
</style>

スタイルタグのapp_theme名前を使用する場合、マニフェストに次のように追加します

<application
    Android:name=".XXXXXX"
    Android:allowBackup="true"

    Android:icon="@drawable/ic_launcher"
    Android:label="@string/app_name"
    Android:theme="@style/app_theme" > //here

背景のみを変更する場合

0