3

私はここで少し立ち往生していて、本当にいくつかの助けを使うことができます。ボタンに2行のテキストを追加するのは非常に簡単なはずです。しかし、そうではありません。htmlタグでそれを行う方法はありますが、それでは「大きい」と「小さい」を超えてフォントやテキストサイズを指定することはできません。

これが私のボタンです。これは「クリック」と呼ばれます。

   <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/buttondown"
          android:state_pressed="true" />
    <item android:drawable="@drawable/buttonup" />
</selector>

そして、これがレイアウトファイルの1つに表示される場所です。

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical" 
 android:layout_width="fill_parent"
  android:layout_height="fill_parent">



<Button
        android:id="@+id/clicky"
        android:layout_width="137.5dip"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="2dip"
        android:layout_marginBottom="2dip"
        android:layout_marginRight="1dip"
        android:textSize="20dip"
        android:background="@drawable/clicky"
  />


  <ListView 
    android:id="@+id/ListView01" 
    android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:divider="#000000"
    android:dividerHeight="2dip"
    android:layout_below="@+id/separator"/>

</RelativeLayout>

そして、これがonCreate()メソッドにあるものです:

Typeface customFont = Typeface.createFromAsset(getAssets(),"fonts/zooper.ttf");
 Button mButton=(Button)findViewById(R.id.clicky);
        mButton.setText("Hi There");
        TextView clicky = (TextView)findViewById(R.id.clicky);
        clicky.setTypeface(customFont);

ボタンのテキストは動的に作成されるため、ここから実行する必要があります(現在は静的ですが、後で「HiThere」は変数に置き換えられます)。もう1行のテキストははるかに小さく、静的で、「HiThere」の下に配置されます。私はGoogleで自分の質問に少しでも似ているすべてのことを調べましたが、自分の問題に適応できる答えを見つけることができません。

繰り返しになりますが、2行のテキストが上下に並んだ1つのボタンが必要です。一番上の行は大きく、動的に作成され、カスタムフォントを使用しています。テキストの下の行ははるかに小さく、静的であり、システムフォントを使用できます。

ボタンの中にLinearLayoutをネストするだけで本当に難しいですか?

どんな助けでも大歓迎です。

4

1 に答える 1

12
String s1;
String s2;
int n = s1.length();
int m = s2.length;

Typeface customFont = Typeface.createFromAsset(getAssets(),"fonts/zooper.ttf");
Spannable span = new SpannableString(s1 + "\n" +  s2);
//Big font till you find `\n`
span.setSpan(new CustomTypefaceSpan("", customFont), 0, n, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//Small font from `\n` to the end
span.setSpan(new RelativeSizeSpan(0.8f), n, (n+m+1), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
yourButton.setText(span);

ここに画像の説明を入力

于 2012-08-21T05:57:45.277 に答える