0

グラフィカル バナーの場合、2 つTextViewの を重ねて配置しています。

テキストが常に同じ中心に配置されるように、上は下に、下は上TextViewに揃えて配置されます。レイアウトでは次のTextViewsようになります。

<LinearLayout
    android:layout_height="match_parent"
    android:layout_width="fill_parent"
    android:paddingLeft="126dp"
    android:paddingRight="10dp"
    android:orientation="vertical">
    <TextView
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:maxLines="2"
        android:gravity="bottom|left"
        android:textColor="#FFFFFF"
        android:textStyle="bold"
        android:textSize="16sp" />
    <TextView
        android:id="@+id/artist"
        android:layout_width="fill_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:maxLines="2"
        android:gravity="top|left"
        android:textColor="#AAAAAA"
        android:textSize="16sp" />
</LinearLayout>

私の問題は、上部TextViewがテキストを折り返すときに、最後の行が最小の行として折り返され、下部に合わせていることを考慮していないことです。下記参照。

バナーの例

テキストのほとんどが一番下の行に収まるようにテキストの折り返しを行うために、私は重力を期待していたでしょう。

TextView最後の行から最初の方法でワードラッピングを実行する方法について何か提案はありますか?

読んでくれてありがとう!

4

2 に答える 2

4

私が知る限り、あなたが必要とする最後の行から最初のマナーはありませんが、私が与えたいいくつかの提案があります:

解決策 1 : テキスト ビュー (一番上のもの) を単一行にし、楕円形にします。このようにして、テキスト ビューが常にコンテナーの下部に 1 行で表示され、テキストの最後に ... が表示されるようになります。欠点として、テキストが完全に表示されない場合があります。

android:singleLine="true"
android:ellipsize="end"

解決策 2:テキストの各文字のサイズを計算し、上部のテキスト ビューを 2 つのテキスト ビューに分割し、それらの 2 つのテキスト ビューにテキストを割り当てる必要があります。たとえば、あなたの場合。テキストのサイズを計算し、テキスト ビューのサイズ (この場合は幅) と比較した後、「The 20/20」を一番上のものに割り当て、残りの「Experience - 2 of 2 (デラックス)」を上下に。これは、2 行を超える長いテキストにも適用できます。正しく計算して適用するだけで機能します。テキストサイズをピクセル単位で計算するコードは次のとおりです。

Paint p = new Paint();
        String your_text = "This is your text";
        float size = p.measureText(your_text);
        // assign one part to the top-top
        // assign another part to the top-bottom

お役に立てれば。

于 2013-09-30T10:16:29.947 に答える
0
// try this way
<LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center">

        <ImageView
                android:layout_width="70dp"
                android:layout_height="70dp"
                android:adjustViewBounds="true"
                android:scaleType="fitXY"
                android:src="@drawable/ic_launcher"/>

        <LinearLayout
                android:layout_width="0dp"
                android:layout_weight="1"
                android:layout_marginLeft="5dp"
                android:layout_height="wrap_content"
                android:orientation="vertical">

            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="First TextView"/>
            <TextView
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:layout_marginTop="1dp"
                    android:text="Second TextView"/>

        </LinearLayout>
</LinearLayout>
于 2013-09-30T10:35:21.830 に答える