この単純なレイアウト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に赤い背景を追加しました。
<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"
/>
これは私のために働きます。アスペクト比を維持するための親と中央のトリミングの全幅
ここには実際に機能する素晴らしい答えがたくさんあります。私は今これを行う方法を、より現代的なXML構文である制約ビューと共有するだけです。制約ビュールークを信じてください!
<Android.support.constraint.ConstraintLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:app="http://schemas.Android.com/apk/res-auto"
xmlns:tools="http://schemas.Android.com/tools"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="#394BAB"
tools:context="com.appdomain.app.apppro.ActivityName">
<ImageView
Android:id="@+id/Nice_img"
Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:layout_marginTop="0dp"
Android:src="@drawable/green_square"
Android:scaleType="centerCrop"
Android:adjustViewBounds="true"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
</Android.support.constraint.ConstraintLayout>
もちろん、tools:context = "com.collectsavings.collect.collectpro.LoginAndRegisterPrompt"とAndroid:src = "@ drawable/green_square"はすべてアプリアクティビティコンテキストとdrawablリソースにそれぞれ一致する必要があります。
とても簡単です。幅を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"
/>
私の見解では、このImageView
の余分なレイアウトはバグです。私も同じことが起こりました。その結果、私がgreen_square
に従いたいテキストは、余分なレイアウトに従いました。だから私がしたことは、画面の下部に関連するテキストを指定することでした。そうすれば、テキストは余分なレイアウトを超えてしまいます。確かに、これは最善の解決策ではありませんでしたが、green_square
とテキストの間に大きなスペースを設けるよりもはるかに見栄えがします。