私は Android アプリケーションを組み込み、3 つImageView
の s を a に水平LinearLayout
に配置し、それらをaandroid:layout_width="0dp"
で配置しandroid:layout_weight="1"
、レイアウト内で均等に広がるようにしました。
ここで、 a を使用するように切り替える必要がありますRelativeLayout
(別の画像をオーバーラップさせたいので、 a では実行できないため) 3 s を親レイアウト全体に均等に分散/スケーリングLinearLayout
するという同じ効果を複製することから始めたいと思います。ImageView
しかし、これを達成する方法がわかりません。
私は利用する必要があるような気がしandroid:scaleType
ます...おそらくセンタークロップ:
画像の両方の寸法 (幅と高さ) がビューの対応する寸法 (パディングを引いたもの) 以上になるように、画像を均一にスケーリングします (画像の縦横比を維持します)。
これは良さそうに聞こえますが、正しく機能するようには思えません...これを達成する方法について何か考えはありImageView
ますRelativeLayout
か?
現在のコードのスニペット:
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="horizontal" >
<ImageView
android:id="@+id/dragcircle"
android:layout_width="wrap_content"
android:tag="circle"
android:layout_alignParentLeft="true"
android:layout_height="wrap_content"
android:adjustViewBounds="false"
android:scaleType="centerCrop"
android:src="@drawable/circle" />
<ImageView
android:id="@+id/dragsquare"
android:layout_width="wrap_content"
android:tag="square"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/dragcircle"
android:adjustViewBounds="false"
android:src="@drawable/square" />
<ImageView
android:id="@+id/dragtriangle"
android:layout_width="wrap_content"
android:tag="triangle"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/dragsquare"
android:adjustViewBounds="false"
android:src="@drawable/triangle" />
注: SO でこれと同じ制約を持つ質問が見つかりません。次のような質問がいくつかあります。
Android:RelativeLayout内でコンポーネントを均等に配置する方法は? と android RelativeLayout、等間隔?
しかし、詳細を調べてみるとLinearLayout
、等間隔のオプションとして を考慮しておらず、レイアウト タイプの切り替えが最終的な解決策であることがわかります。私はそれを使用していましたが、画像を重ねる必要があるため、うまくいきません:
例に注意してください。基本的な形状を持つ 3 つの s がありますが、中央の形状に重なってImageView
いる 4番目(非表示で始まる) もあります。 ImageView
これが私が使用しなければならない理由ですRelativeLayout