Android作業ログ

=前置き=

 単に画像を設定するだけだと思ってたけど、意外と色々とつまったのでメモ。

=画像の比率を維持したままボタン化=

 マークや文字まで画像化したものをボタンにする場合、拡大・縮小で潰れてしまうと見た目が悪くなってしまう。そのため、比率を維持したまま拡大・縮小するようにしたい。

 色々な方法を試したものの、今のところベストは「ImageButtonのsrcにselectorを指定し、backgroundに#00000000を指定して元の画像は消す」という方法。これ自体を説明したサイトはなかったものの、SORICH | 社会を豊かにするのImageViewをImageButtonに変更した後、「android:background="#00000000"」を追加すればOK。

 あとは画像の表示位置に応じて「android:scaleType="fitStart"」などを設定すれば良い。

 ベストとは言ったもののこの方法にも難点があって、画像の表示されない余った部分にもボタンの判定があるため、画像以外の部分を押してもボタンが反応してしまう。(backgroundの指定を省けば判定が見える)
 ただ、自分の場合は「なんとなく押しても反応してくれる」と好意的にとることにした。実際、密集してる場合でも隣接してる場合は隙間がないし、多少判定が広い方が押しやすかった。

=画像メインのチェックボックス

 チェックボックスを横長の画像で置き換えたかったが、表示が欠けることが多くてムリだった。この場合、CheckBoxではなくToggleButtonを使う方が良いらしい。
 ただ、ImageButtonとは違って比率の維持はできないようなので、今回は仕方なくlayout_widthなどでサイズを固定して使った。ボタンを差し替えたいだけなら9-patchを使えばできそう。