2

テキスト内の2つの単語の間隔を広げようとしています。このために私は多くのサイトに出くわしましたが、私が必要とする正確な情報を備えた以下のサイトを見つけました。

http://developer.android.com/reference/java/awt/font/TextAttribute.html

たとえば、以下の定数を使用したい

public static final TextAttribute TRACKING 

私のテキストのために。どうすればいいですか?

ここに、テキストで使用できるすべてのtextAttributes(定数)がリストされています。しかし、これをテキストに使用する方法がわかりません。誰かがこれについて私を助けることができますか?

4

1 に答える 1

0

私はこの関数を書きました:

入力

  • LinearLayout ll :

    「TexView」となるレイアウト(向きが垂直であることを確認してください)

  • 文字列テキスト:

    テキスト

  • コンテキスト mContext

    コンテキスト

何をすべきか

編集が必要な部分をコメントしました


/*
*  Copyright 2011 Sherif
*/

private void populateText(LinearLayout ll, String text , Context mContext) { 
    String [] textArray = text.split(" ");
    Display display = getWindowManager().getDefaultDisplay();
    ll.removeAllViews();
    int maxWidth = display.getWidth() - 20;

    LinearLayout.LayoutParams params; // to be used over and over
    LinearLayout newLL = new LinearLayout(mContext);
    newLL.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
            LayoutParams.WRAP_CONTENT));
    newLL.setGravity(Gravity.LEFT);
    newLL.setOrientation(LinearLayout.HORIZONTAL);

    int widthSoFar = 0;

    for (int i = 0 ; i < textArray.length ; i++ ){
        LL = new LinearLayout(mContext);
        LL.setOrientation(LinearLayout.HORIZONTAL);
        LL.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM);
        LL.setLayoutParams(new ListView.LayoutParams(
                LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

        TV = new TextView(mContext);
        TV.setText(textArray[i]);
        //TV.setTextSize(size);  <<<< SET TEXT SIZE
        TV.measure(0, 0);
        params = new LinearLayout.LayoutParams(TV.getMeasuredWidth(),
                LayoutParams.WRAP_CONTENT);
        //params.setMargins(5, 0, 5, 0);  // YOU CAN USE THIS
        LL.addView(TV, params);
        LL.measure(0, 0);
        widthSoFar += TV.getMeasuredWidth();// YOU MAY NEED TO ADD THE MARGINS
        if (widthSoFar >= maxWidth) {
            ll.addView(newLL);

            newLL = new LinearLayout(mContext);
            newLL.setLayoutParams(new LayoutParams(
                    LayoutParams.FILL_PARENT,
                    LayoutParams.WRAP_CONTENT));
            newLL.setOrientation(LinearLayout.HORIZONTAL);
            newLL.setGravity(Gravity.LEFT);
            params = new LinearLayout.LayoutParams(LL
                    .getMeasuredWidth(), LL.getMeasuredHeight());
            newLL.addView(LL, params);
            widthSoFar = LL.getMeasuredWidth();
        } else {
            newLL.addView(LL);
        }
    }
    ll.addView(newLL);
}

ノート

私はそれをテストしていません...より複雑なことに使用しましたが、機能していました

于 2011-08-02T13:56:12.013 に答える