Androidカスタムコントロールの位置座標、画面サイズ、タイトルバー、ステータスバーの高さを取得
2015 ワード
Androidカスタムコントロールの位置座標、画面サイズ、タイトルバー、ステータスバーの高さを取得
1.カスタムコントロールheightの取得
このActivityで現在のActivityコントロールのheightを取得します.
Activityで他のxmlファイルのコントロールのheightを取得します.
2.画面サイズを取得するには:
このコードはActivityのonCreate()関数に挿入できます.
3.タイトルバー、ステータスバーの高さを取得するには、次の手順に従います.
getLocationOnScreenグローバル座標系でのビューのx,y値を計算します(この値は画面の先端から計算することに注意してください.つまり、通知バーの高さが含まれています)//現在の画面内の絶対座標を取得getLocationInWindowビューが存在するwidnowの座標x,y値を計算します//ウィンドウ全体での絶対座標を取得します
getLeft,getTop,getBottom,getRight,このグループは父親に相対的な座標を取得する
1.カスタムコントロールheightの取得
このActivityで現在のActivityコントロールのheightを取得します.
Button button = (Button)findViewById(R.id.button);
int buttonHeight = button.getHeight();
Activityで他のxmlファイルのコントロールのheightを取得します.
LayoutInflater factorys = LayoutInflater.from( .this);
final View textEntryView = factorys.inflate(R.layout. XML, null);
TextView y_type = (TextView) textEntryView.findViewById(R.id. ID);
int textHeight = y_type.getHeight();
またはLayoutInflater inflater = (LayoutInflater) context.getSystemService(LAYOUT_INFLATER_SERVICE);
final View layout = inflater.inflate(R.layout.my_kebiao_setting,null);
TextView y_type = (TextView)findViewById(R.id. ID);
int textHeight = y_type.getHeight();
2.画面サイズを取得するには:
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int screenWidth=metrics.widthPixels; //
int .screenHeight=metrics.heightPixels; //
このコードはActivityのonCreate()関数に挿入できます.
3.タイトルバー、ステータスバーの高さを取得するには、次の手順に従います.
Rect rect = new Rect();
Window win = this.getWindow();
win.getDecorView().getWindowVisibleDisplayFrame(rect);
int statusBarHeight = rect.top;
int contentViewTop = win.findViewById(Window.ID_ANDROID_CONTENT).getTop();
int titleBarHeight = contentViewTop - Variable.statusBarHeight;
//statusBarHeight ,titleBarHeight
getLocationOnScreenグローバル座標系でのビューのx,y値を計算します(この値は画面の先端から計算することに注意してください.つまり、通知バーの高さが含まれています)//現在の画面内の絶対座標を取得getLocationInWindowビューが存在するwidnowの座標x,y値を計算します//ウィンドウ全体での絶対座標を取得します
getLeft,getTop,getBottom,getRight,このグループは父親に相対的な座標を取得する
int[] location = new int[2] ;
view.getLocationInWindow(location); //
view.getLocationOnScreen(location);//
location [0]--->x ,location [1]--->y