2012-06-30 18 views
20

私のAndroidプロジェクトでは、画面のサイズであるXMLのRelativeLayoutルート要素の全体を背景画像に塗りつぶす方法がわかりません。私はこれがすべてのアスペクト比で機能していることを確認したいので、画像は必要に応じて縦方向または横方向にクリップします。誰かがこれを簡単に行う方法を知っていますか? ImageViewButtonについての質問は見たことがありますが、実際には一般的なものはViewです。現在画像の塗りつぶし方法RelativeLayoutの背景を伸ばしずに

私の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> 
+0

はBGの画像9ptach PNGをすることはできませんか? –

+1

申し訳ありませんが、正確にあなたの画像サイズが固定されており、あなたの画面サイズはケースのために提出されているので、私は本当にそれをタイルにしたくなかった –

答えて

51

イメージを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内の任意の他のビューには、限り、それは(あなたがXMLである)RelativeLayoutの最初のビューであるとして、ImageViewの上部に表示されます。

+0

'android:src =" @ drawable/background "'を忘れないでください。 – pqn

+0

@PremN。ハハ、ありがとう、私は答えを編集しました。 – Flynn81

+0

ありがとうございました! – DmitryKanunnikoff

11

は、あなたの解像度でビットマップ描画可能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" /> 

使用/バックグラウンド

+0

私は実際には、 XMLビットマップを使用して入力します。 – pqn

+0

ありがとうございました、これはまさに私が探していたものでした! – zabawaba99

4

あなたのImageView、あなたのRelativeLayoutを埋めるImageViewためalignパラメータを使用したい場合は、このanswerによります。

あなたがLinearLayoutにあなたの意見のすべてを入れて、あなたの背景ImageViewalignパラメータを設定することができます。

<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> 
関連する問題