您可以使用Android共享首选项记住app的所选背景颜色.每次打开应用程序时,您都可以检查共享首选项的值并相应地应用颜色.

使用所有其他活动将派生的公共基本活动类,并在“OnCreate”和“OnResume”方法中编写代码以读取共享偏好值并应用背景颜色.这种方式当您打开任何活动时选择背景颜色将是应用.

尝试下面的代码,它经过测试和工作.

BaseActivity类

public class BaseActivity extends ActionBarActivity {

private static final String PREFS_NAME="color_settings";

SharedPreferences prefsReader = null;

@Override

protected void onCreate(Bundle savedInstanceState) {

// TODO Auto-generated method stub

super.onCreate(savedInstanceState);

prefsReader=getSharedPreferences(PREFS_NAME, Context.MODE_PRIVATE);

}

@Override

public void setContentView(int layoutResID) {

super.setContentView(layoutResID);

setBackgroundColor();

}

protected void setBackgroundColor()

{

int background_resource_id= prefsReader.getInt("background_resource_id",0);

View bgView= findViewById(R.id.main_container);

bgView.setBackgroundColor(getResources().getColor(background_resource_id));

}

protected void setCurrentBackgroundColor(int colorResourceId)

{

SharedPreferences.Editor editor=getSharedPreferences(PREFS_NAME, MODE_PRIVATE).edit();

editor.putInt("background_resource_id", colorResourceId);

editor.commit();

}

}

活动类

public class MainActivity extends BaseActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//save the color resource value in shared pref

setCurrentBackgroundColor(R.color.red);

setContentView(R.layout.activity_main);

}

}

Colors.xml颜色列表

#FF33B5E5

#FFAA66CC

#FF99CC00

#FFFFBB33

#FFFF4444

#FF0099CC

#FF9933CC

#FF669900

#FFFF8800

#FFCC0000

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐