AdSheepは、新米バックエンドエンジニアの技術分野に留まらないライフハック風ブログです

ImageButtonとButtonの違いと使い方

Android

どうも、ShouNです。
Androidでボタンを作成するには、ImageButtonかButtonを使います。
本日はそれぞれの違いについてです。

ImageButton

画像(Image)をボタンとして使えます。
android:srcでres下の画像を指定する方法と、android:backgroundで指定する方法があります。
どちらを使うかで、画像の挙動が大きく変わります。

android:srcで指定する場合

Button要素のレイアウトに左右されません。
例えばButton自体がwidth600pxで300pxの画像を指定した場合、左右に150pxの余白のあるButtonが生まれます。
Buttonの大きさにフィットしないので、大きすぎる画像を使うと画面やButtonから大きくはみ出します。

android:backgroundで指定する場合

Button要素のレイアウトに左右されます。
width600pxのbuttonにwidth300pxの画像を指定すると、横が倍に引き延ばされた状態で画像が表示されます。
Buttonの大きさにフィットするので、大きさに関係なく画像を使えますが、比率が合わないと画像が太ったり痩せたりして見えます。

Buttonとは

そのままです。Buttonを描画します。
画像の指定もできないことはないですが、android:backgroundで指定するので、ImageButtonをあえて避けてこちらを使う必要はないように思います。
画像ではなく、細かくButtonの色やレイアウトをLayout.xmlで指定してデザインしたい場合はこちらを使うとよいです。

各ボタンの見た目

ImageButton2つとButtonを並べたものがこちらです。

大きい画像を使用したので、srcで指定したImageButtonでは画像が大きく見切れているのがわかると思います。

まとめ

ボタンの挙動の違いについてはこちらが参考になります。

ShouN
ShouN

要所要所で適切な要素を使うのって割と大切ですが、僕は独学でアドバイスしてもらえる人がいないので、もし違うということがあれば教えていただきたいです。

弊社にもソースレビューの文化根付いてほしい…

コメント