您好我正在尝试创建一个包含多行文字的按钮。见下面的例子。每行文本都有不同的文本大小和颜色应用于它。该按钮还需要能够将用户发送到下一页。这可能是XML吗?我到处寻找,找不到解决方案。感谢。
BUTTON HEADING TEXT(大绿色字体) 第一个按钮文字(小灰色字体) 第二个按钮文字(小白色字体)
参见示例:
答案 0 :(得分:11)
图片无法访问。但根据您的问题,您可以将LinearLayout实现为主要组件并将其属性设置为可点击且可聚焦,并将其背景设置为android.R.drawable.btn_default。将此布局的方向设置为Vetical。
在xml中的此linearlayout中添加任意样式的TextView,或者根据需要动态添加。但是将所有TextViews的focusable和Clickable属性设置为false。
答案 1 :(得分:5)
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");
}
});
答案 2 :(得分:2)
您可以堆叠<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")));