SUGARSPOT

Androidアプリ、WEBサービス開発の SUGARSPOT  |Androidブログ「Androidのことなんだけど」もやってます

2012年7月20日金曜日

[Android]あれ?背景色が変わらない・・・?

ありますね
プログラムで背景色を指定しようとしたときにありますね

hoge. setBackgroundColor(R.color.fuga_color);

とか、指定していて色が変わらないなんて事があります
色のidをカラーに指定しても色変わらないですよねー

正しくはこうですよね


int color = getResources().getColor(R.color. fuga_color );
button.setBackgroundColor( color);

よく間違って「あれ?」となるので、メモメモ。

[Android]表示を縦や横に固定するときの注意すること

アプリを作る際に「このアプリは横向きでしか使わないから、横固定!」ということで

AndroidManifest.xmlのactivityタグに

android:screenOrientation="landscape"


と書くことは多いですよね
でも、このようAndroidManifest.xmlに指定をしている場合にはandroid.hardware.screen.landscapeに対応していない端末がサポート外になる可能性があります


これはportraitの時も同じです


こんな時、向きの固定はプログラムで指定しちゃいましょう


setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);


を記述する横向き固定になってくれます


しかし、これだけではエラーになる可能性があります
setRequestedOrientationが呼び出された時に、画面の向きが変わったと判定されるとActivityが再構築されて場合によってアプリが強制終了してしまいます


そんな時は、画面の向きが変わっても再構築されないようにAndroidManifest.xmlのactvityタグにandroid:configChangesを指定しましょう


<activity (省略) android:configChanges="keyboardHidden|orientation" >