0
0

More than 3 years have passed since last update.

AndroidStudioで、Buttonオブジェクトに背景画像を設定するときの問題点と解決法

Posted at

AndroidStudioで、Buttonオブジェクトに背景画像を設定するときの問題点と解決法

AndroidStudioで、Buttonオブジェクトに背景画像を設定しても画像が反映されない問題があります。

以前からButtonオブジェクトのbackgroundTintプロパティに色を指定しても、Buttonの上下に隙間ができてしまうということがありました。(余白をあまり空けたくないときに困る)
これは、AndroidStudioにデフォルトで設定されている色の画像の上下に余白が含まれている為に発生しているようです。(Buttonオブジェクトのプロパティで「layout_marginTop」や「layout_marginBottom」,「paddingTop」や「paddingBottom」の値を0dpに指定しても消えません!)
qiita_button1e2.png

これに関して、以前はButtonオブジェクトのbackgroundプロパティに、自作の画像を設定すれば解決できました。(余白を消すことができました)

しかし、最近確認したらButtonオブジェクトのbackgroundプロパティに画像を指定することはできますが、指定した画像が表示されなくなっていました。(2021年4月2日時点)

これに対しての解決法ですが、Buttonオブジェクト自体をImageButtonオブジェクトに変更して、ImageButtonオブジェクトのsrcCompatプロパティかbackgroundプロパティに自作の画像を設定することで解決できます。
qiita_button2e2.png

しかし、Buttonオブジェクトと違い、ImageButtonオブジェクトはテキストを含めることができない問題があります。

これに対しての解決法ですが、ImageButtonオブジェクトに設定する自作の画像自体に、テキストを含めてしまうことで解決できます。
qiita_button3e.png

まとめると、今後Buttonに画像を設定するときは、ImageButtonオブジェクトにテキスト入りの画像を設定すると良いと思います。(テキストが入り用の場合)

今回の投稿記事に関連するアプリを2つ作りました。
1つ目はテキストの含まれない単色の画像を作成できるアプリです。枠の設定と角丸の設定(四角から円形まで可能)もできます。

ColorPartsCreater (無料、広告無し)

2つ目はテキストの含まれる単色の画像を作成できるアプリです。文字の色やサイズやスタイルの変更、影をつけることもできます。

CharPartCreater (100円、広告無し)

どちらも保存する画像サイズは縦横1ピクセルから1024ピクセルまで変更可能なので、作成されるAndroidアプリのパーツサイズに合わせて使用できます。
Webアプリケーションでも私のアプリと同じような画像を作成できるものはありますが、無料のものでも著作権等の関係で商用利用できないものや商用利用できても使える画像の数量制限のあるものがあります。
著作権等の事をいちいち考えなくていいのは自作で画像を作ってしまうことだと思うので、よろしければダウンロードして、使ってみてください。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0