0

これはしばらくの間私を悩ませてきましたが、それを修正する方法がわかりません。

次のレイアウトがあるとします。各 ImageView の下に TextView を持つ 2 つの ImageView。画像はリモートで取得されています。各 ImageView に、それらが含まれるアクティビティの幅の約 40% を取り、その下に空白を入れたいと思います。TextViews は約 5% 小さくなり、各 ImageView の下の中央に配置されます。

私が試したこと:

ImageView と TextView の各ペアを独自の LinearLayout に配置するため、2 つの LinearLayouts を配置し、各 LinearLayout の layout_width を fill_parent に設定し、両方の layout_weight (0.5) を等しくします。各 ImageView には、fill_parent の layout_width と 15dip の layout_margin がありました。layout_height は wrap_content に設定されました (これは、設定方法がわからないパラメーターでした)。

それは問題なく機能しましたが、問題は、すべての受信画像のサイズと比率が異なるため、並べて奇妙に見えることでした.

私は設定に進みました: android:scaleType="centerCrop" android:adjustViewBounds="true"

それは役に立ちましたが、各 ImageView はまだ異なるサイズである場合がありました。この時点で、各 ImageView を両方の ImageView に対して 100 ディップ程度の固定幅に配置しました。達成しようとしていることをどのように達成できますか?

4

1 に答える 1

1

2番目のオプションでは、「AdjustViewBounds」なしで試してみてください:

ドローアブルの縦横比を維持するために ImageView の境界を調整する場合は、これを true に設定します。

しかし、これがあなたの場合に私がすることです:

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.5"
    android:orientation="vertical" >


    <ImageView
        android:id="@+id/imageView1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:scaleType="center"
        android:src="@drawable/99" />

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|bottom"
        android:text="TextView" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_weight="0.5"
    android:orientation="vertical" >


    <ImageView
        android:id="@+id/imageView2"
        android:layout_width="match_parent"
        android:layout_height="fill_parent"
        android:layout_weight="1"
        android:scaleType="center"
        android:src="@drawable/ic_launcher" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:text="TextView" />
</LinearLayout>

大きな画面では次のように表示されます。

テスト1

小さな画面では次のようになります。

テスト2

この場合、写真が小さい方が見栄えが良いので、中央を好みます。あなたが言ったように、大きなデバイスでは見栄えが悪いので、できれば固定サイズを避けようとしています。

画面サイズごとに異なるレイアウトを作成することもできます。しかし、それらすべてを管理する必要があります。複数の画面サイズのサポートを確認してください(まだ確認していない場合は ;))。

于 2012-11-15T22:00:28.657 に答える