动态生成的 TextView 中的默认样式
Posted
技术标签:
【中文标题】动态生成的 TextView 中的默认样式【英文标题】:default styles in dynamicaly generated TextViews 【发布时间】:2014-08-10 19:37:18 【问题描述】:当我将 textviews 添加到 xml 布局文件时,默认情况下我会得到带有黑色文本颜色的 textviews; 当我以编程方式生成这个文本视图时,我得到了一种灰色文本颜色的文本视图。 我希望此文本视图具有相同的样式,并且我不确定为动态生成的文本视图简单设置黑色是否会有所帮助,因为我不确定它在所有版本的 android 上看起来是否相同。 你会给我推荐什么?默认的样式资源是什么?
难道没有使用默认样式的可能性吗?
【问题讨论】:
【参考方案1】:在xml中设置你自己的颜色
android:textColor="#000000"
或动态
mText.setTextColor(Color.parseColor("#000000"));
我从不使用默认颜色
【讨论】:
【参考方案2】:您需要在styles.xml 中创建一个默认样式。创建一个文本颜色为黑色或您要使用的默认颜色的项目。
您也可以参考这个网站: http://androidplus.org
【讨论】:
【参考方案3】:我猜你要找的是android.R.color.primary_text_light
,它是像你这样的浅色主题中深色文本的默认颜色。
int c = getResources().getColor(android.R.color.primary_text_light);
textView.setTextColor(textColor);
使用android.R.attr.textColorPrimary
可能会更好,因为它会为两个主题返回适当的默认颜色:
int[] attrs = new int[] android.R.attr.textColorPrimary;
TypedArray ta = context.obtainStyledAttributes(attrs);
int textColor = ta.getColor(0, Color.BLACK);
ta.recycle();
textView.setTextColor(textColor);
【讨论】:
以上是关于动态生成的 TextView 中的默认样式的主要内容,如果未能解决你的问题,请参考以下文章
WPF/Silverlight的问题:在后台代码动态生成的控件,怎么设置动态样式 Style="DynamicResource sbStyle