【问题标题】:add style to strings为字符串添加样式
【发布时间】:2012-12-31 07:15:03
【问题描述】:

我可以在 strings.xml 文件中的 textview 中添加样式吗?我有如下样式..

<style name="text_searching">
    <item name="android:text">dummy</item>
     <item name="android:textSize">28sp</item>

    <item name="android:background">@drawable/buttonbarbackground</item>
   <!--  <item name="android:textColor">#ff999999</item> -->
    <item name="android:textStyle">normal</item>

我在strings.xml中分配了这个样式如下..

<string name="text">@style/text_searching</string>

是否正确...如果有人知道请告诉我.. 提前谢谢..

【问题讨论】:

    标签: android textview android-styles


    【解决方案1】:

    你所做的是正确的。尽管习惯上将styles 放在一个名为styles 的文件中。 values 中的所有 xml 文件都具有相同的 resources 类型,因此编译器并不关心您将每个定义放在哪里。另一方面,人类确实......

    要将此样式添加到TextView,您可以:

    <TextView style="@style/text_searching" .../>
    

    我不确定你想用&lt;string ...&gt; 做什么,但那不是TextView,是string

    更新:认为我知道你实际上想要做什么,这与TextViews 无关。不,你不能那样做。您可以在一定程度上使用简单的 HTML 标签来定义文本大小、颜色等;那么你将不得不使用getText 而不是getString 来让它处理HTML标签。

    但在任何情况下string 都不会有背景,这是完全错误的。

    【讨论】:

    • 现在我没有收到错误,但我得到的样式 ID 为 @2134267
    • @indraja:你想用那个string做什么?
    • 我正在尝试在 createOptionsMenu 上添加该字符串,如下所示.. menu.add(Menu.NONE, Menu.FIRST, 0,@string/text).setShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
    • @indraja:是的,我认为你关于TextView 的问题与TextViews 无关......抱歉,你不能自定义这样的菜单。
    【解决方案2】:

    使用可跨越的字符串:

    TextView textView = (TextView) findViewById(R.id.text_view);
    SpannableString spString = new SpannableString("Background text");
    spString.setSpan(new BackgroundColorSpan(Color.GREEN), 5, spString.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    textView.setText(spString);
    

    有关详细信息,请参阅例如this tutorial.

    【讨论】:

      猜你喜欢
      • 2011-01-15
      • 1970-01-01
      • 2018-12-02
      • 2018-12-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-02
      • 1970-01-01
      相关资源
      最近更新 更多