TextViewに枠線を付ける&背景色を変更する
前に作ったアプリの機能追加をしたときのメモ。
TextViewに枠線を付ける
表みたいなものを作ろうと思いTextViewを並べてみたのだが、TextViewには枠線を表示するプロパティが無く、そのままだと真っ白なハコが並んでいるだけになってしまった。
「TextView 枠線」ググってみると、次のサイトを発見。
【Android開発】スタイルにborderがないけど枠線を表示したい
XMLで四角を書いたリソースを定義しておいて、それをTextViewのBackGroundResourceプロパティに定義する。
Drawableリソースの詳細は下記にて。
Drawable resources | Android Developers
今回は枠線をグレー、中の色を白にしたかったのでこんな風に定義した。
試してみたところ、きちんと枠線が表示された。
TextViewの背景色を変更する
今度は白だった背景色を変更してみる。上で作ったXMLのsolidを変更してみた。例えば背景色を緑にするなら、
と定義する。最初ここを
と書いていたのだけれど、それだと背景色が変わらなかった。下のやつだと透過度=0と判断されてしまったのだろうか?(透過度=0が透明、透過度=255が不透明)
参考:
Color | Android Developers
TextViewの背景色を動的に変更する
続けてTextViewの背景色を動的に変更する方法について。これはsetBackGroundResource()の引数に上で定義したリソースID(ファイル名。例えばdrawable/border.xmlを参照するならR.drawable.border)を指定する。
例としては、
TextView text = (TextView)findViewById(R.id.text_1); if (r == 0){ text.setBackgroundResource(R.drawable.border_1); }else{ text.setBackgroundResource(R.drawable.border_2); }
個人的にはXMLの中で定義した
Drawable ResourcesのShapeをJavaで動的に作る方法がわからない - くろめも@dev
なんかうまい書き方ないのかなー。