2

Android のメッセージング アプリケーションの背景として、TextView と 9 パッチ イメージを使用しています。

外観は次のとおりです。 ここに画像の説明を入力

青の場合、左側に表示されすぎているのがわかりますか? テキストを折り返す必要があると判断した場合、どうすればそれを減らすことができますか?

のビューの幅フィールドと高さフィールドにアクセスしようとしましたがpublic View getView(int position, View convertView, ViewGroup parent)、それらは常にゼロです (ps TextView は ListView 内にあり、getViewメソッドは ListView のアダプター内にあります)。

ありがとうございました!


テキストビュー XML:

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

<TextView
    android:id="@+id/message_text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_margin="5sp"
    android:background="@drawable/bubble_b"
    android:shadowColor="@color/textShadow"
    android:shadowDx="1"
    android:shadowDy="1"
    android:text="Medium Text"
    android:textColor="#000000"
    android:textSize="16sp"
    android:lineSpacingMultiplier="1.1" />
</LinearLayout>

また、ここに 9 パッチが何をするかの画面があるので、それがどのように機能するかを見ることができます:

ここに画像の説明を入力

4

2 に答える 2

3

添付していただいた iPad の写真では、iMessage がmaxWidth画面の半分に設定されていると思います。

したがって、取得して半分にScreen Width設定できます。 これは、画面幅を取得してに渡す方法です。maxWidthTextViewTextView

Display display = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE)).getDefaultDisplay();
yourTextView.setMaxWidth(display.getWidth()/2);

クラスのPSgetWidthメソッドにDisplayは非推奨と書かれていますが、これに対する代替ソリューションを見つけることができます。あなたも手widthに入れることができますLinearLayout

これは私のデバイスでどのように見えるかです

于 2013-06-25T21:39:46.423 に答える