1

こんにちは。

私は次の TextView を持っています:

<TextView android:id="@+id/keypadwidget_number"
    android:tag="@string/phone_number_tag"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_centerVertical="true"
    android:textSize="30sp"
    android:ellipsize="start"
    android:scrollHorizontally="true"
    android:gravity="right"
    android:singleLine="true"
    android:textColor="@color/widget_text"
    android:layout_toLeftOf="@+id/keypadwidget_btn_delete"/>

私の期待される結果は次のとおりです。

...99862214

しかし、代わりに、私は得ています:

ここに画像の説明を入力

背景/テキストの色について申し訳ありません。私の選択ではありません!

これらの各ボタンは次を呼び出します。

mPhoneNumberTextView.append(clickValue);

私の質問は; 私は何を間違っていますか?

編集: TextView の android:text プロパティを非常に長いものに設定すると、楕円が期待どおりに設定されます。mPhoneNumberTextView.append(clickValue);壊れるのは走るときです。

4

2 に答える 2

0

怒りに駆られて、テキスト ビューがマーキーされるたびに、テキスト ビューの左側にドローアブルを追加しました。

    private boolean isMarqueed(TextView tv){
        return isMarqueed(tv.getText().toString(), mPhoneNumberTextView.getWidth(), mPhoneNumberTextView);
    }

    private boolean isMarqueed(String text, int textWidth, TextView tv) {
        Paint testPaint = new Paint();
        testPaint.set(tv.getPaint());
        boolean isMarquee = true;
        if (textWidth > 0) {
            int availableWidth = (int) (textWidth - tv.getPaddingLeft() - tv.getPaddingRight()-testPaint.measureText(text));
            if(availableWidth > 0)
                isMarquee = false;
        }
        return isMarquee;
    }

TextView 文字列がトリミングされているかどうかを確認する方法 (マーキー)のわずかなバリエーションはどれですか?

于 2013-08-28T09:59:23.833 に答える