如何在Android中使用两种不同的字体大小的按钮文字?

时间:2014-04-11 00:17:30

标签: java android android-layout textview android-ui

如何为ImageButton或Button实现按钮背景,其中包含2个textview,每个使用不同的字体大小?我不能使用静态图像作为背景,我需要使用xml或以编程方式实现此目的。

这是一个数字小键盘,它带有一个数字值和一组字母,每个字母使用不同的字体大小,需要设置为按钮文字。

enter image description here

以下是我脑中弹出的一些建议,但似乎有限制,因为我想重用UI组件并避免重复代码。

  1. 创建一个包含2个文本字段的布局xml,并将其设置为按钮上的背景。但是如何获取这些textview字段的引用以在MyActivity.java中设置它们的值?

  2. 使用分层列表?仍然是textviews的问题参考

  3. 或者创建第1步中提到的自定义视图和膨胀布局。此解决方案可以解决我的问题。

  4. 此UI要求是否存在任何其他解决方案?

    感谢。

2 个答案:

答案 0 :(得分:8)

希望这会有所帮助。这个过程不是唯一的解决方案,但它非常简单。在xml中添加xml部分而不是按钮。

XML

<LinearLayout
    android:id="@+id/button_layout"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal" >

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="20sp" 
        android:text="5"/>
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="12sp" 
        android:text="ABC"/>

</LinearLayout>

CODE

    LinearLayout button= (LinearLayout)findViewById(R.id.button_layout);
    button.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO DO whatever you want to do here

        }
    });

答案 1 :(得分:1)

对于您的按钮,您可以使用此类代码

不要忘记在Assets文件夹中输入字体

 Button btnA=(Button) findViewById(R.id.button1);
 Typeface typeface = Typeface.createFromAsset(getAssets(), "yourFont.ttf");
 btnA.setText("my custom font");
 btnA.setTypeface(typeface);
 btnA.setTextSize(20);//as per your size

有关详情,请参阅this

做第二个按钮,如果这有助于让我知道,谢谢......