4

ユーザーが記事を読むことができる画面があります(上部に大きな写真があります。

その一般的な構造は次のとおりです。

LinearLayout -> ScrollView -> LinearLayout -> ImageViews,TextViews...etc

私が問題を抱えているImageViewは、上部の大きな画像です(記事のタイトルの下ですが、テキストの上にあります:

        <ImageView
            android:id="@+id/article_photo"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:background="@color/super_light_gray"
            android:scaleType="centerCrop"
            android:contentDescription="@string/articlePhoto"
            android:cropToPadding="true"
            android:layout_marginBottom="10dp"
            android:padding="1dp"/>

問題は、写真が表示されますが、垂直方向にたくさんトリミングされているため、垂直方向の写真でも非常に細くて幅が広く表示されることです. 「wrap_content」は写真の高さ全体になるは​​ずだと思いました...しかし、明らかに間違っています:)

写真を全幅(すでに機能しています)だけでなく、全高でも表示するにはどうすればよいですか?

UniversalImageLoader を使用して画像をロードしています。

        if(lrgPhoto != null && !lrgPhoto.filepath.equals(""))
        {
            imageLoader.displayImage(
                "http://img.mysite.com/processes/resize_android.php?image=" + lrgPhoto.filepath + "&size=640&quality=90",
                imageView,
                imgDisplayOptions
                );
            imageView.setVisibility(View.VISIBLE); //show photo
        }
        else
        {
            imageView.setVisibility(View.GONE); //hide photo
            imageView.invalidate();
        }

編集:

「scaleType」を「fitXY」に変更すると、画像はトリミングされずに正しい寸法を表示しますが、全幅ではありません。奇妙に全幅とトリミングされていない両方を持つ方法はありますか?

「クロップ」は、画像の元の高さを高さに使用しているためのようですが、画像を全幅に合わせて拡大しています...

4

3 に答える 3

30

これを imageview xml に追加します。

android:adjustViewBounds="true"
于 2013-11-13T23:15:25.633 に答える
1

変化する

android:scaleType="centerCrop"

android:scaleType="fitXY"
于 2012-11-09T16:57:11.273 に答える
0

これは簡単だと思っていましたが、xml レイアウトだけでは不可能なようです。

ImageView - 高さが幅と一致していますか?

于 2012-11-09T17:23:15.810 に答える