web-dev-qa-db-ja.com

背景画像をAndroid

Androidアプリの中央に配置したい約100x 100の背景画像があります。これを行う方法はありますか?

シンプルなアプリの向きの変更に大いに役立つと思います。

24
NotACleverMan

ケースにはBitmapDrawableを使用できます。 res/drawableフォルダーにcentered.xmlを作成します。

<bitmap xmlns:Android="http://schemas.Android.com/apk/res/Android"
    Android:src="@drawable/your_image"
    Android:gravity="center"/>

次に、centereddrawableを背景として使用できます。

46

質問は古く、答えには1つの大きな弱点があります。画像サイズを変更する可能性はありません。つまり、描画可能なものに完全に依存しているということです。

最新のAndroidデザインライブラリを使用している間、アクティビティビューのルートはCoordinatorLayoutまたはDrawerLayoutになり、これらのレイアウトには階層を示すデフォルトのビューがありません。これは、最初の子を意味します。ビューは次のビューによって影が薄くなり、2番目から3番目、そして最後の1つに...が影になります。したがって、背景を中央に配置するには、最初の子としてLinearLayoutを追加し、その中に画像を中央に配置する必要があります。コードスニペット:

<Android.support.v4.widget.DrawerLayout>
<!-- first child -->
<LinearLayout
    Android:layout_width="match_parent"
    Android:layout_height="match_parent"
    Android:gravity="center"
    >
    <ImageView
        Android:layout_width="match_parent"
        Android:layout_height="60dp"
        Android:src="@drawable/some_background"
        />
</LinearLayout> 
... next view will be above

LinearLayout重力オプションによって中央に配置される画像のサイズを完全にカスタマイズできます。 LinearLayoutの幅と高さにmatch_parentを設定することも重要です。これは、中心が親ビューの中心にもなるためです。

同じことがRelativeLayoutまたは子ビューのオーバーラップを可能にする他のレイアウトでも実行できます。

0
Maciej Sikora

または、mipmapイメージを使用する場合は、itemの代わりにbitmapを使用する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:Android="http://schemas.Android.com/apk/res/Android">
    <item Android:drawable="@color/app_bg_color" />
    <item Android:drawable="@mipmap/ic_launcher_round"
    Android:gravity="center"/>
</layer-list>
0
Kirill Karmazin

ConstraintLayoutを使用すると、backgroundタグを直接設定できます。正直なところ、これを解決するのに数時間かかりましたが、あなたが思っているよりもずっと簡単です;)

0
Richard Bown