2

ユーザーにアプリの背景色を変更してもらいたいとしましょう。いくつかのxmlレイアウトファイルを作成してから、レイアウトファイルのリストを含むListViewを作成することを考えていました。次に、ユーザーがそれらのいずれかを選択すると、対応する xml ファイルが読み込まれます。

これは可能ですか?はいの場合、どうすればよいですか?

4

3 に答える 3

4

最も簡単な方法は、コードで動的に行うことです。ユーザーの色を SharedPreferences に保存し、ビューの背景としてコードで使用するだけです。

したがって、ColorPikerDialog を使用して任意の色を選択することをお勧めします。たとえば、このライブラリを使用できますhttps://github.com/gsingh93/android-ColorPickerPreference

SharedPrefrences prefs = getSharedPrefrences(YOUR_SHARED_PREFS, 0);
int colorId = prefs.getInt(BACKGROUND_COLOR, 0);
if(colorId != 0) {
   setBackgroundToColorId(colorId);
}

幸運を!

于 2013-01-10T10:54:57.447 に答える
1

@llya Demidovが言ったように、ユーザーがそのcoloridをトラックするリストビューから色を選択し、共有設定に保存すると、私はすでにこれを行っています。

 editor = getSharedPreferences(PREFS_NAME, 0).edit();
    editor.putString(PREF_COLOR, <userselectedcolor>);

各アクティビティをロードする前に、このようにします

 pref = getSharedPreferences(PREFS_NAME, 0);
            int color= pref.getString(PREF_COLOR, null);
    if(color!=0)
    {
    yourlayoutid.setbackgroundColor(Color);
    }
于 2013-01-10T11:15:35.273 に答える
0

これは提案としてのみ考えてください。

ユーザーが希望する色のカラーコードを使用するエディットテキストを配置できます。これにより、色は16進値になり、各色の長さは「FF0000」のように6文字の英数字に固定されるため、TextWatcherを使用できます。 6までの色が適用されます。

searchBox.addTextChangedListener(new TextWatcher() {
        public void onTextChanged(CharSequence s, int start, int before, int count) {}
        public void beforeTextChanged(CharSequence s, int start, int count, int after) {}
        public void afterTextChanged(Editable editable) 
        {

            if(editable.toString().length==6)
                 //set color of background
        }
    });
}
于 2013-01-10T11:13:59.717 に答える