developers...我想制作一个可以更改安卓导航栏颜色的应用程序。通常我们可以用这个简单的代码来做到这一点。 👇👇
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { getWindow().setNavigationBarColor(getResources().getColor(R.color.your_awesome_color)); }
但问题是,我想让这段代码在应用程序没有像这张图片那样运行(在后台(时工作。 👇👇
这是安卓的主屏幕 我认为这可以在安卓服务的帮助下完成。但是我们不能在服务中使用 getWindow(( 方法。
所以请帮我怎么做,我应该使用窗口管理器吗??或其他任何东西请帮助我并提供一个代码。 ☺☺☺
一个好方法是在服务中保留您选择的颜色。您可以使用 sharedPreferences:
int yourColor = R.color.someColor;
SharedPreferences sharedPref = context.getSharedPreferences(
"com.example.your_filename", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("COLOR_KEY", yourColor);
editor.apply();
在"活动"中,您可以从"共享首选项"加载持久化的颜色,如下所示:
SharedPreferences sharedPref =getSharedPreferences(
"com.example.your_filename", Context.MODE_PRIVATE);
int yourColor = sharedPref.getInt("COLOR_KEY", R.color.defaultColor);
if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
getWindow().setNavigationBarColor(
ContextCompat.getColor(getContext(), yourColor)
);
}