23

私の Android プロジェクトでは、背景画像RelativeLayoutを XML のルート要素 (画面のサイズ) 全体に表示する方法がよくわかりません。これがすべてのアスペクト比で機能することを確認したいので、必要に応じて画像が垂直または水平にクリップされます。誰かがこれを簡単に行う方法を知っていますか? ImageViewとに関する質問しか見たことButtonがありませんが、実際には一般的な ではありませんView

私の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>
4

4 に答える 4

61

イメージを 9 パッチに変える以外に、これは不可能だと思います。代わりにできることは-

  1. ImageViewの最初のビューとしてを追加しますRelativeLayout
  2. に設定layout_centerInParenttrueます。
  3. layout_widthと を に設定layout_heightmatch_parentます。
  4. に設定scaleTypecenterCropます。

これにより、画像が歪みなく画面全体に表示されますが、画面のサイズ/向きによっては、画像の上下または左右の一部が切り取られる場合があります。

<ImageView 
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_centerInParent="true"
        android:scaleType="centerCrop"
            android:src="@drawable/background" />

の他のビューは、 (xml にいる場合)の最初のビューである限り、RelativeLayoutの上に表示されます。ImageViewRelativeLayout

于 2012-06-30T17:24:02.953 に答える
12

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 の代わりにそのドローアブルを背景として使用する

于 2012-06-30T17:12:46.903 に答える
6

この答えによると、あなたがあなたImageViewを埋めたい場合は、パラメーターをRelativeLayout使用してください。alignImageView

すべてのビューを に配置し、パラメーターを background にLinearLayout設定できます。alignImageView

<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>
于 2016-06-26T06:48:43.563 に答える