如何使用服务更改安卓导航栏颜色



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)
);
}

相关内容

  • 没有找到相关文章

最新更新