所以side_nav_bar.xml
内部是这样的:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
android:id="@+id/colorNav">
<solid android:color="@color/colorPrimary"/>
</shape>
用于使用导航抽屉布局时。我想知道是否有一种方法可以动态地改变片段内的这种颜色。例如,我有一个设置片段,用户可以在其中选择三个不同的主题。我希望这个side_nav_bar.xml形状颜色与主题相匹配。我无法弄清楚如何在代码中以编程方式引用它。
下面的示例图片。我想根据主题选择改变粉红色。
答案 0 :(得分:1)
您可以像这样更改导航标题颜色。
if ( ... )
{ int RC = mql4zmq_msg_init_data( aSendMsgOBJ,
aSendMsgBuffUCHAR,
aSendMsgBUFF_SIZE * 4
);
// if RC
// ------------------------------------------------------.SEND()
zmq_send( aZmqPUBLISHER, aSendMsgOBJ );
// ------------------------------------------------------.SEND()
...
}
答案 1 :(得分:1)
通过使用以下方法,您可以动态更改任何形状颜色。
public static void changeShapeColorRunTime(View view, int colorCode) {
if (view == null) {
return;
}
Drawable background = view.getBackground();
if (background instanceof ShapeDrawable) {
((ShapeDrawable) background).getPaint().setColor(colorCode);
} else if (background instanceof GradientDrawable) {
((GradientDrawable) background).setColor(colorCode);
}
}
只需将视图和颜色代码传递给方法,即可动态更改导航栏形状颜色的颜色。