読者です 読者をやめる 読者になる 読者になる

とりあえず移転してみました

ニュースねたや、IT系の記事を書いていくつもり・・・ですが、どうなるかわかりません。まあ、とりあえず やってみます。

android 画像などを透過させるには?

相変わらず、ちまちまとやっていますが、今回も少しはまった件。

透過度の指定

androidのレイアウトで、画像などを貼り付けて透過させたい場合や、色をつけて透過させたい場合の自己(事故)メモ
backgroundで色を指定する時には、色指定の段階で「#00000000」のように8桁の数字(16進数)で指定ができる。
色指定の場合は、6桁の数字(RGB)で指定するのだけど、先頭の2桁が透過度を指定している。
「#FF」からはじめると透過度0なので、下が全く見えない通常の塗りつぶし。

「#00」からはじめると透過度100%なので、色指定も意味がない・・・

色指定では、透過度は0から255での指定ができる。

backgroundにリソースとして登録した画像を指定すると画像表示も可能になる。その場合に、画像を透過させたい・・・


ところが、色と違い透過度が指定できないので、「alpha」で指定できるらしい。検索して透過度と同じように0から255が指定できるらしいので、数値を入れても変化がない。
layoutファイル上で指定する場合は、0から1の間で指定するという情報があったので、変更してみるとできた。

layoutファイルの数値に関しては、ビルドの段階でエラーがでない場合が多いので、何が問題なのか?を判断するのが難しい場合がある。

フォルダの作成と画像ソース

androidでは、機種ごとの解像度に応じて、自動的に画像のサイズなどを拡大、縮小してくれるのだけど、あらかじめそれぞれの解像度に合わせた画像を用意する方法もある。
解像度ごとのフォルダを用意して、そこに画像ファイルを入れるのだけど、フォルダを作成しても表示されない・・・

なんじゃこりゃ・・・

f:id:imsdJava:20170509104453p:plain

これは、できたあとの画像。このように、同じ名前のファイルがフォルダごとに存在している。

複数画像の対応については、以下のURLを参照

複数画面をサポートする | Android Developers

f:id:imsdJava:20170509105438p:plain

フォルダ

  • 「drawable-ldpi」
  • 「drawable-mdpi」
  • 「drawable-hdpi」
  • 「drawable-xhdpi」

を作成し、その中に解像度の異なる画像を同じ名前で入れることで、自動的に解像度に応じて表示してくれる・・・らしい。

だが、フォルダが表示されない。

左上のandroidと表示されている部分をクリックし「Packages」を選択すると表示された。
f:id:imsdJava:20170509104503p:plain

この表示に変えてからフォルダの作成、削除とファイルの格納を行うと「android」に変更しても表示されるようになった。
なんか、面倒・・・

「drawable/画像ファイル名」で指定することが可能になる。

解像度ごとの端末の割合についても、以下のURLに情報が。
ダッシュボード | Android Developers

f:id:imsdJava:20170509110242p:plain

解像度については、androidは機種が多いので、どこまで対応させるのか?悩ましいところ。でも、人気アプリでもないので、無問題だろう(泣)