39

ルートLinearLayout要素(両方の次元でfill_parentに設定されている)を、デバイスの向きに関係なく常に画面の左下隅に配置される背景画像を持つように設定しようとしています。「background-position:leftbottom;」を使ってcssでできるような背景画像の位置を設定する方法があれば素晴らしいでしょう。しかし、Androidでこれを実現する方法がわかりません。これを行う方法はありますか?

助けてくれてありがとう。

4

4 に答える 4

84

XMLファイルのビットマップを使用してカスタムビットマップドローアブルを作成する必要があります(例:「res / drawables / my_drawable.xml」)

<?xml version="1.0" encoding="utf-8"?>
<bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/my_png_file"
    android:gravity="bottom|left" />

次に、このドローアブルxmlをビューの背景( "@ drawables / my_drawable")として設定します。ただし、描画可能なXML形式はAndroidサイトで十分に文書化されていないため、自分で解決する方法を理解するのは簡単な問題ではありません。

于 2010-05-06T14:56:56.767 に答える
8

プログラムでこれを行う利点が見つかった場合:画像はレイアウトよりも大きくなるのではなく、レイアウトに適合します。理由はわかりません。

コード:

Bitmap bmp = BitmapFactory.decodeResource(getResources(),
                R.drawable.image);
BitmapDrawable bitmapDrawable = new BitmapDrawable(bmp);
bitmapDrawable.setGravity(Gravity.BOTTOM|Gravity.RIGHT);
LinearLayout layout = (LinearLayout) findViewById(R.id.background_root);
layout.setBackgroundDrawable(bitmapDrawable);
于 2011-11-07T18:30:55.117 に答える
1

LinearLayout を RelativeLayout にラップし、それに ImageView を追加します。android:layout_alignParentBottom と android:layout_alignParentLeft を使用すると、画像を左下に配置できます。

<RelativeLayout
    android:id="@+id/relativeLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:src="@drawable/my_image" />

    <LinearLayout
        android:id="@+id/linearLayout"
        ... >

バックグラウンドで画像を描画するには、ImageView が RelativeLayout の最初の要素であることを確認してください。

于 2012-10-08T10:32:52.010 に答える