前回スクリーン座標とローカル座標について話しましたがもう一つ座標系があったみたいです 赤がスクリーン座標で、緑がレイアウトの持つローカル座標、青がボタンの持つローカル座標 前回で言っていたスクリーン座標はレイアウトのローカル座標でした。申し訳ない・・・ それでボタン高さ分ずれる原因も判明しました public void setLayoutParams (ViewGroup.LayoutParams params) これでボタン座標を設定していますが、これの設定はレイアウトのローカル座標系に対しての設定です。なのでレイアウトのローカル座標からスクリーン座標に変換する必要があります。 前回ボタン高さ分ずらして位置があっているように見えてたのは偶然で本当は下の画像のオレンジ分の差分を考慮しなければいけません オレンジ矢印の長さ求める方法は摸索中・・・ ステータスバー?呼び方分かればリファレンス見