web-dev-qa-db-ja.com

android xmlドローアブル画像をフルスクリーンの背景に

Androidで(コルドバスプラッシュ画面用の)xmlドローアブルが必要です。画面の中央に(引き伸ばさずに)透明なロゴを表示し、画面の残りの部分には背景色を設定したい。

私が最初に試したのは、xmlファイルに画像のみを追加することでした。

<?xml version="1.0" encoding="utf-8"?>
<bitmap
    Android:src="@drawable/splashscreen"
    Android:gravity="center_horizontal|center_vertical" />

これは、ロゴが画面の中央に表示されていることを示していますが、(明らかに)背景色はありません。

そこで、そのxmlに背景色を追加するためにさまざまなソリューションを試しました。例えば:

<?xml version="1.0" encoding="utf-8"?>    
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item>
        <shape Android:shape="rectangle">
            <solid Android:color="#FFFFFF" />
        </shape>
    </item>
    <item>
        <bitmap
            Android:src="@drawable/splashscreen"
            Android:gravity="center_horizontal|center_vertical" />
    </item>
</layer-list>

これで、画像の背景色が変わりましたが、フルスクリーンではなくなりました。画像サイズに合わせて調整され、全画面表示時に引き伸ばされます。

では、どうすれば背景色で全画面描画可能になり、その上に中央の画像を表示できますか?

EDIT:すべての回答はRelativeLayoutの使用を提案しています-しかし、これは「drawable」のxmlファイル内では不可能だと思いますよね?編集できるレイアウトはありません。cordovaによって参照されるドローアブルのみです。

10
Ralf
<?xml version="1.0" encoding="UTF-8"?>
    <bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android" 
        Android:src="@drawable/splash" 
        Android:gravity="fill_horizontal|fill_vertical" />
6
Hiran

このようにして、

   <RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:background="@color/white" >//Set background color

        <ImageView
            Android:layout_width="wrap_content"
            Android:layout_height="wrap_content"
            Android:layout_centerInParent="true"
            Android:adjustViewBounds="true"
            Android:src="@drawable/splash_logo" />//set logo 

    </RelativeLayout>
1
Jignesh Jain

必要に応じて、次のコードを使用できます。

   <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android" >

    <item Android:drawable="@color/bg_color"/>
    <item>
        <bitmap
            Android:gravity="center|bottom|clip_vertical"
            Android:src="@drawable/your_image" />
    </item>

</layer-list>
0
BSavaliya