AndroidのカスタムViewでOnMeasure関数のwidthMeasureSpecがマイナス
カスタムViewを表示すると、画面いっぱいに描画されてしまい、
ボタンやテキストなどが表示できない。
OnMesure関数を追加して、
setMeasuredDimension(800, 600);
と固定の値を書くと、うまくいくようになるが、
回転すると、800,600に固定したため、
画面いっぱいに書いてくれなくなる。
OnMeasure関数のwidthMeasureSpec変数をしらべると
- 2147483648=0xFFFFFFFF80000000
の値が入ってくる。
どう扱えばいいんだろ・・・
API Demoにサンプルがあった。
http://bit.ly/atLKgp
@Override protected void onMeasure( int widthMeasureSpec, int heightMeasureSpec) { setMeasuredDimension( measureWidth(widthMeasureSpec), measureHeight(heightMeasureSpec)); } private int measureHeight(int measureSpec) { int result = 0; int specMode = MeasureSpec.getMode(measureSpec); int specSize = MeasureSpec.getSize(measureSpec); 略