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の中で定義したの「"#FF00FF00"」だけを差し替えたかったんだけれど、やり方が分からなかった。同じような疑問を感じてる方もいらっしゃるようで。
Drawable ResourcesのShapeをJavaで動的に作る方法がわからない - くろめも@dev
なんかうまい書き方ないのかなー。

おまけ

Twitterでも書いたけど、Androidエミュレータで画面の縦横方向を変更する方法。
いろいろな解説サイトを見るとCtrl+F11で切り替える、と書いてあった。自分の環境で試したところ、左Ctrl+F11だと切り替えられたが右Ctrl+F11だと切り替えられなかった。そういうもんなんだろうか。