您好我正在尝试创建一个包含多行文本的按钮。请参见下面的示例。每行文本都应用了不同的文本大小和颜色。该按钮还需要能够将用户发送到下一页。这在 XML 中可能吗?我到处找,找不到解决办法。谢谢。
BUTTON HEADING TEXT(绿色大字体) 第一个按钮文字(灰色小字体) 第二个按钮文字(白色小字体)
参见示例:
图片无法访问。但根据您的问题,您可以实现一个 LinearLayout 作为主要组件并将其属性设置为可点击和可聚焦,并将其背景设置为 android.R.drawable.btn_default。将此布局的方向设置为垂直。
在 xml 中或动态地在此线性布局中添加任意数量的任何样式的 TextView。但是将所有 TextViews 的可聚焦和可点击属性设置为 false。
Html.fromHtml(string) 可以解释一些 hmtl 标签,因此您可以使用 html 来设置按钮文本的样式。
假设您已经在 XML 文件中定义了按钮,那么您可以在 Java 代码中像这样设置按钮的文本。
Button button = (Button) findViewById(R.id.button1);
String styledText = "<big> <font color='#008000'>"
+ "My orders" + "</font> </big>" + "<br />"
+ "<small>" + "You have no current orders" + "</small>";
button.setText(Html.fromHtml(styledText));
// Attach a listener to the button that will make something
// happen when the button is clicked
button.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// Put your Intent code here
Log.d("onclick", "Button click registered");
}
});
您可以堆叠<big>
和<small>
HTML 标签来增加它们的效果:
private final String btnInnerHTML = "<big><big><big><font color='#000000'><b>%s</b></font></big></big></big><br/><small>%s</small>";
btn0.setText(Html.fromHtml(String.format(btnInnerHTML, "Line1", "Line2")));