动态生成的 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 中的默认样式的主要内容,如果未能解决你的问题,请参考以下文章

Android开发:动态生成TextView

WPF/Silverlight的问题:在后台代码动态生成的控件,怎么设置动态样式 Style="DynamicResource sbStyle

Android动态生成按钮样式

js,css随笔(动态生成的dom做点击事件无效)

iOS - 动态类型和界面生成器

将 css 样式添加到动态生成的项目(jquery,css)