1. ホーム
  2. android

[解決済み] Androidです。ギャラリーからの画像でプログラムの背景を変更する

2022-03-06 09:23:33

質問

そこで、ユーザーがプログラムの背景をギャラリーから自分の写真に変更するオプションを持ちたいと思います。ボタンがあり、画像をビットマップとして保存し、button.setBackgroundDrawable()を使用してこれを行おうとしましたが、画像をボタンの上に置いてしまい、ボタンのテキストしか見ることができず、また画像をフルスクリーンにしてくれません。以下は、私のコードの一部です。

if (bitmap != null) {
                bitmap.recycle();
            }
            InputStream stream = getContentResolver().openInputStream(data.getData());
            bitmap = BitmapFactory.decodeStream(stream);
            stream.close();

            BitmapDrawable ob = new BitmapDrawable(getResources(), bitmap);
            button.setBackgroundDrawable(ob);

そして、xmlはこのように設定しています。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="0dp"
android:paddingLeft="0dp"
android:paddingRight="0dp"
android:paddingTop="0dp"
tools:context="com.example.proba.MainActivity" >

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:onClick="pickImage"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_alignParentTop="true"
    android:layout_marginRight="106dp"
    android:layout_marginTop="192dp"
    android:text="Button" />

よろしくお願いします。

どのように解決するのですか?

ご覧ください。 この ギャラリーから画像を取得しているので、ルートレイアウトにidを与えて、次のように背景を設定することができます。 rootlayout.setBackgroundDrawable(ob);