Androidカスタムコントロールの位置座標、画面サイズ、タイトルバー、ステータスバーの高さを取得

2015 ワード

Androidカスタムコントロールの位置座標、画面サイズ、タイトルバー、ステータスバーの高さを取得
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