19

この単純なレイアウトXMLと、30X30ピクセルのgreen_square.pngファイルがあります。

<?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" >

    <ImageView
        android:background="@color/red"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:adjustViewBounds="true"
        android:scaleType="fitStart"
        android:src="@drawable/green_square"/>

</LinearLayout>

私が達成しようとしているのは、ImageViewの余分なスペースがない状態でアスペクト比を維持しながら、親の幅を満たすように画像を拡大縮小することです。

避けたい余分なスペースを参照するために、ImageViewに赤い背景を追加しました。

これが私の目標です

4

6 に答える 6

45
<ImageView
        android:id="@+id/game"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:scaleType="centerCrop"
        android:adjustViewBounds="true"
        android:src="@drawable/ic_game" 
        />

これは私にとってはうまくいきます。縦横比を維持するための親と中央のトリミングの全幅

于 2013-03-24T15:25:17.530 に答える
1

とてもシンプルです。幅をfill_parentと高さをwrap_contentにするだけです。これが私がそれを理解したものです。

<ImageView
    android:id="@+id/game"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:scaleType="centerCrop"
    android:adjustViewBounds="true"
    android:src="@drawable/ic_game" 
    />
于 2016-10-06T05:31:46.197 に答える
0

私の見解では、このImageView余分なレイアウトはバグです。私も同じことがありました。その結果、私が従いたかったテキストgreen_squareは余分なレイアウトに従いました. だから私がしたことは、画面の下部に相対的なテキストを指定することでした. そうすれば、テキストは余分なレイアウトを超えて表示されます。green_square確かにこれは最善の解決策ではありませんでしたが、とテキストの間に大きなスペースを空けるよりははるかに見栄えがします。

于 2012-05-02T21:02:25.657 に答える
-1

スケール タイプ「fitCenter」または「fitxy」を使用

于 2012-01-03T10:12:58.753 に答える
-4

これを試して、

<?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" >

<ImageView
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@color/red"
    android:scaleType="centerCrop"
    android:src="@drawable/green_square" />

</LinearLayout>
于 2012-01-03T10:24:29.003 に答える