1
我試圖圍繞在材質設計應用中使用顏色進行包裝。我有一個自定義視圖,它在onDraw方法中執行一些操作,我想使用可用於應用的顏色並與材質設計保持一致。但是,如何訪問我的java代碼中的主要,次要,字體(等)顏色?在我的自定義視圖中使用材質設計顏色onDraw方法
我試圖圍繞在材質設計應用中使用顏色進行包裝。我有一個自定義視圖,它在onDraw方法中執行一些操作,我想使用可用於應用的顏色並與材質設計保持一致。但是,如何訪問我的java代碼中的主要,次要,字體(等)顏色?在我的自定義視圖中使用材質設計顏色onDraw方法
下面是如何通過編程訪問顏色(在colors.xml定義)
private int getColor(int colorAttr) {
TypedValue typedValue = new TypedValue();
TypedArray a = mContext.obtainStyledAttributes(typedValue.data, new int[] { colorAttr });
int color = a.getColor(0, 0);
a.recycle();
return color;
}
//examples accessing colors
int colorAccent = getColor(R.attr.colorAccent);
int colorPrimary = getColor(R.attr.colorPrimary);
所以,這是一樣選擇一個主題(說暗),然後使用此代碼檢索主要和次要顏色?我沒有定義任何顏色XML文件。有沒有失蹤的一步? – xrd
那麼,爲了與您在應用程序中爲材料設計定義顏色調色板的方式保持一致,您需要定義colorPrimary,colorPrimaryDark,colorAccent。在colors.xml中執行此操作(可能需要在值文件夾中進行此操作)。現在,它將訪問您正在使用的主題定義的主要顏色。所以如果你沒有明確地定義它們,它只會抓住那個主題的默認值(我很確定)。 –