在一个文本视图中将重力设置为两个不同的文本 Android
Set gravity to two different texts in one textview Android
我需要在一个文件中设置两个文本(Text1 和 Text2)TextView
。以下是我的要求。
Text1 的字体大小应大于 Text2。
Text2 将低于 Text1。两者居中对齐。
Text1 应该被赋予 gravity
: center 以便它类似于其他 layout.Text 2 将始终低于 Text1
你不能只用一个 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
无法将两个文本合并为一个 TextView
。它破坏了 TextView
本身的尊重。
您需要一个背景和边框与您的 TextView
相似的 Vertical LinearLayout
。在此布局内,您需要分别为 text1 和 text2 设置两个 TextView
。您可以将所需的属性应用于 TextView
的
个个体
我还是不太明白你的问题,你是想同时显示两个文本还是不显示?
如果您一次只显示一个 'style', 的答案是正确的。可以使用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");
您可以在 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>"));
我需要在一个文件中设置两个文本(Text1 和 Text2)TextView
。以下是我的要求。
Text1 的字体大小应大于 Text2。
Text2 将低于 Text1。两者居中对齐。
Text1 应该被赋予 gravity
: center 以便它类似于其他 layout.Text 2 将始终低于 Text1
你不能只用一个 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
无法将两个文本合并为一个 TextView
。它破坏了 TextView
本身的尊重。
您需要一个背景和边框与您的 TextView
相似的 Vertical LinearLayout
。在此布局内,您需要分别为 text1 和 text2 设置两个 TextView
。您可以将所需的属性应用于 TextView
的
我还是不太明白你的问题,你是想同时显示两个文本还是不显示?
如果您一次只显示一个 'style',
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");
您可以在 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>"));