如何在Android中以编程方式设置样式属性?

时间:2010-07-14 13:15:56

标签: android coding-style

我必须设置以编程方式创建的TextView的样式。

如何以编程方式实施style="@style/test"

我已经查看了Android developer style documentation,但它没有回答我的问题。有什么想法吗?

3 个答案:

答案 0 :(得分:25)

目前不支持动态样式更改。您必须在创建视图之前设置样式(在xml中)。

答案 1 :(得分:3)

setTypeface(Typeface.DEFAULT_BOLD, Typeface.BOLD_ITALIC);

它对我有用

答案 2 :(得分:2)

您可以将样式传递给视图的构造函数。这可以通过两种方式完成:

  1. 使用ContextThemeWrapper并将您的风格设置为主题:

    ContextThemeWrapper wrappedContext = new ContextThemeWrapper(yourContext, R.style.test);
    TextView testView = new TextView(wrappedContext, null, 0);
    
  2. 这里重要的注意事项 - 要使用ContextThemeWrapper正确设置样式,我们必须使用三参数构造函数并将defStyleAttr参数设置为0.否则,默认按钮样式将应用于视图。

    1. 从API 21开始,我们可以使用带有4个参数的构造函数:

      View (Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)
      
    2. defStyleRes是您的样式ID

      使用相同的注释 - defStyleAttr应为0