2017-06-23 59 views
1

我一直在android上工作,但有一個常見的問題,我多次面對。問題是存在其中在我分配視圖背景繪製爲背景的多個視圖,如:可配置的背景繪製

view with same style but with solid colour and border as green and dark green respectively

view with same style but with solid colour and border as grey and dark grey respectively

如在上面的例子中可以看出,背景繪製兩者的視圖是相同的,但只有兩個背景可繪製xml文件的區別是實體和筆觸顏色。有沒有其他更好的方法來做到這一點,我只是創建一個通用的背景可繪製,並改變XML和ID不可能在XML中的組件的顏色,而不是每次爲每個純色和筆觸顏色變化創建一個新的繪圖。

+0

你可以參考java中的drawable,做你想做的事 ---------------------------- ---------------- final GradientDrawable shape =(GradientDrawable)bgDrawable.findDrawableByLayerId(R.id.shape_id); shape.setColor(ContextCompat.getColor(this,R.color.white)); – MKY

+0

是否有另一種方法通過使用XML? –

回答

0

否這在XML中不可行。但是,可以使用Java。

ShapeDrawable shapeDrawable = (ShapeDrawable) ContextCompat.getDrawable(getActivity(), R.drawable.name); 
shapeDrawable.getPaint().setColor(ContextCompat.getColor(mContext,R.color.colorToSet))