私のAndroidプロジェクトでは、画面のサイズであるXMLのRelativeLayout
ルート要素全体を背景画像で埋める方法がわかりません。これがすべてのアスペクト比で機能することを確認したいので、必要に応じて画像が垂直または水平にクリップされます。これを簡単に行う方法を知っていますか?ImageView
sおよびButton
s、しかし実際には一般的なView
sではありません。
現在、私のXMLファイル:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:id="@+id/enclosing_rl"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@drawable/background"
Android:fitsSystemWindows="false">
<!-- Other elements -->
</RelativeLayout>
あなたの画像を9つのパッチに変える以外、これは可能だとは思いません。代わりにできることは、RelativeLayoutの最初のビューとしてImageViewを追加することです。 layout_centerInParentをtrueに設定し、layout_widthとlayout_heightをmatch_parentに設定します。次に、scaleTypeをcenterCropに設定します。これにより、画像が歪みなく画面いっぱいに表示されますが、画面のサイズ/向きによっては、画像の上部/下部または左右の一部が切り取られる場合があります。
<ImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:layout_centerInParent="true"
Android:scaleType="centerCrop"
Android:src="@drawable/background" />
RelativeLayoutの他のビューは、RelativeLayoutの最初のビューである限り、ImageViewの上に表示されます(xmlにいる場合)。
Res/drawableフォルダーにビットマップ描画可能XMLリソースを作成します。
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:src="@drawable/background"
Android:tileMode="repeat" />
@ drawable/backgroundの代わりにそのドロアブルを背景として使用します
これに応じて answerImageView
にRelativeLayout
を入力するには、align
にImageView
パラメーターを使用します。
すべてのビューをLinearLayout
に配置し、align
パラメーターをバックグラウンドImageView
に設定できます。
<RelativeLayout
Android:layout_width="fill_parent"
Android:layout_height="wrap_content" >
<ImageView
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:src="@drawable/my_background"
Android:scaleType="centerCrop"
Android:layout_alignTop="@+id/my_views"
Android:layout_alignBottom="@+id/my_views"
/>
<LinearLayout
Android:layout_width="match_parent"
Android:layout_height="wrap_content"
Android:id="@+id/my_views"
Android:orientation="vertical" >
<!-- stuff -->
</LinearLayout>
</RelativeLayout>
そのスマートで100%有効な答えは、画像ビューのプロパティscaleTypeを設定することです!
Android:scaleType="fitCenter"