我正在尝试在运行时重置TextView的TextColor.我想将TextView的默认颜色作为@ColorInt.我相信当前的主题知道这一点.

这是我试过的:

public @ColorInt int getDefaultThemeColor(int attribute) {

TypedArray themeArray = mContext.getTheme().obtainStyledAttributes(new int[] {attribute});

try {

int index = 0;

int defaultColourValue = 0;

return themeArray.getColor(index, defaultColourValue);

}

finally {

themeArray.recycle();

}

}

其中属性是:

> android.R.attr.textColor

> android.R.attr.textColorPrimary

> android.R.attr.textColorSecondary

他们都没有努力找回正确的颜色.我还尝试用以下方法替换方法的第一行:

TypedArray themeArray = mContext.getTheme().obtainStyledAttributes(R.style.AppTheme, new int[] {attribute});

我不想要肮脏的解决方案:

>获取并存储TextView的textColor

>将颜色改变为任何颜色

>将其重置回先前存储的值

任何提示?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐