場合によっては、水平画面と垂直画面の両方に通常どおり表示する必要があるカスタムコントロールがある場合があります。次に、onMeasureメソッドを書き直す必要があります。
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int width = View.MeasureSpec.getSize(widthMeasureSpec);
int height = View.MeasureSpec.getSize(heightMeasureSpec);
if (width < height){
super.onMeasure(widthMeasureSpec,widthMeasureSpec);
}else{
super.onMeasure(heightMeasureSpec,heightMeasureSpec);
}
}
このように、水平画面と垂直画面を切り替えるときに、ビューを常に完全に表示できるようにすることができます。