共享首选项可绘制颜色Android

时间:2017-05-10 14:13:46

标签: android android-actionbar sharedpreferences drawable android-drawable

您好我正在使用共享首选项来存储APP的颜色。 到目前为止,我可以保存按钮和状态栏的颜色,因为它们不使用可绘制的颜色。

这是我的职能:

private void storeColor(int color){
    SharedPreferences mSharedpreferences = getSharedPreferences("ToolbarColor", MODE_PRIVATE);
    SharedPreferences.Editor mEditor = mSharedpreferences.edit();
    mEditor.putInt("color", color);
    mEditor.apply();
}

private int getColor(){
    SharedPreferences mSharedPreferences = getSharedPreferences("ToolbarColor", MODE_PRIVATE);
    int selectedColor = mSharedPreferences.getInt("color", getResources().getColor(R.color.colorPrimary));

    return selectedColor;
}

我正在使用它们:

if (intValue == 1){
            getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.color.green_apple));
            btn_historial.setBackgroundColor(getResources().getColor(R.color.green_apple));
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                getWindow().setStatusBarColor(getResources().getColor(R.color.green_apple));
            }
            storeColor(getResources().getColor(R.color.green_apple));
        }


if(getColor() != getResources().getColor(R.color.colorPrimary)){
            getSupportActionBar().setBackgroundDrawable(getResources().getDrawable(R.color.colorPrimary));
            btn_historial.setBackgroundColor(getColor());
            if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                getWindow().setStatusBarColor(getColor());
            }
        }

在我使用工具栏之前,现在我想使用操作栏。 我在这里有点迷失我怎么能在这里添加可绘制的颜色?

1 个答案:

答案 0 :(得分:0)

使用ColorDrawable

int color = getColor();
getActionBar().setBackgroundDrawable(new ColorDrawable(color));