【问题标题】:Set gravity to two different texts in one textview Android在一个textview Android中将重力设置为两个不同的文本
【发布时间】:2015-07-18 12:21:15
【问题描述】:

我需要在一个 TextView 中设置两个文本(Text1 和 Text2)。以下是我的要求。

Text1 的字体大小应大于 Text2。

Text2 将低于 Text1。两者都居中对齐。

Text1 应该被赋予gravity: center 以便它类似于其他布局。Text 2 将始终位于 Text1 下方

【问题讨论】:

  • 我想在这里讽刺一下,但既然每个人都在这里回复得很好,我也会很好地说这是不可能的,你必须创建 2 个文本视图并相应地设置属性或使用空格或 \n 和\t 但你不能显示 text1 更大而其他更小。

标签: android android-gravity


【解决方案1】:

我还是不清楚你的问题,你想同时显示两个文本吗?

如果您一次只显示一种“样式”,mayo 的答案是正确的。您可以使用 switch 语句来实现它:

switch(textStyle){
    case 1: myTextView.setTextAppearance(getApplicationContext(), R.style.styleText1);
            break;
    case 2: myTextView.setTextAppearance(getApplicationContext(), R.style.styleText2);
            break
}

更多信息here

但如果您想同时显示两者,WebView 是您唯一的选择:

Webview wv;
//Specify Text1 and Text2 as strings.
String text = "<html><body style=\"font-size:25px;\">"+"<p align=\"center\">"+ Text1 +"</p>"+"<style=\"font-size:15px;\">"+"<p align=\"center\">"+ Text2 +"</p>"+"</body></html>";
wv.loadData(""+text, "text/html", "utf-8");

【讨论】:

    【解决方案2】:

    你不能只用一个 TextView 来做到这一点。

    基本上一个 TextView 保存一个文本和该文本的一些属性。该属性应用于整个TextView,即应用于整个文本。 如果您希望 Text1 和 Text2 具有不同的属性,则必须有两个 TextView。

    最后,android 中的任何 UI 元素都由 xml 给出,在这种情况下,TexView 类似于:

    <TextView android:text="@string/title" 
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:textColor="#ffffd300"
                android:gravity="center_horizontal"
                android:textSize="40sp"
                android:id="@+id/textViewTitle"
                android:layout_gravity="center" />
    

    在属性 text 中,您将设置您的 Text1 您的 Text2。在这种情况下,我们使用@string/title,这意味着我们正在使用来自字符串资源的名为“title”的字符串。

    参考: http://developer.android.com/reference/android/widget/TextView.html

    【讨论】:

      【解决方案3】:

      不可能将两个文本合并到一个 TextView 中。它破坏了TextView 本身的尊重。

      您需要一个Vertical LinearLayout,其背景和边框类似于您的TextView。在此布局中,您需要分别为 text1 和 text2 设置两个 TextView。您可以将所需的属性应用于个人TextView's

      【讨论】:

        【解决方案4】:

        你可以在Textview中使用html代码

        <TextView
                android:id="@+id/title"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:textColor="@android:color/white"
                android:textSize="25sp" />
        

        在java文件中

        TextView mTitle = (TextView) toolbar.findViewById(R.id.title);
                mTitle.setText(Html.fromHtml("<b>S T A C K </b><font color='white'>O V E R F L O W</font>"));
        

        【讨论】:

          猜你喜欢
          • 2016-11-07
          • 2021-07-31
          • 2013-10-27
          • 1970-01-01
          • 1970-01-01
          • 2017-01-11
          • 1970-01-01
          • 2018-10-06
          相关资源
          最近更新 更多