按钮上的多个文本行。每行都有不同的文字样式

时间:2012-04-09 12:29:26

标签: android button

您好我正在尝试创建一个包含多行文字的按钮。见下面的例子。每行文本都有不同的文本大小和颜色应用于它。该按钮还需要能够将用户发送到下一页。这可能是XML吗?我到处寻找,找不到解决方案。感谢。

BUTTON HEADING TEXT(大绿色字体) 第一个按钮文字(小灰色字体) 第二个按钮文字(小白色字体)

参见示例:

enter image description here

3 个答案:

答案 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")));