4

您好我正在尝试创建一个包含多行文本的按钮。请参见下面的示例。每行文本都应用了不同的文本大小和颜色。该按钮还需要能够将用户发送到下一页。这在 XML 中可能吗?我到处找,找不到解决办法。谢谢。

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

参见示例:

在此处输入图像描述

4

3 回答 3

11

图片无法访问。但根据您的问题,您可以实现一个 LinearLayout 作为主要组件并将其属性设置为可点击和可聚焦,并将其背景设置为 android.R.drawable.btn_default。将此布局的方向设置为垂直。

在 xml 中或动态地在此线性布局中添加任意数量的任何样式的 TextView。但是将所有 TextViews 的可聚焦和可点击属性设置为 false。

于 2012-04-09T12:40:32.633 回答
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");

            }
    });
于 2012-04-09T13:39:14.667 回答
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")));
于 2013-12-20T20:20:29.473 回答