0

私は風景の中に電話を持っていますが、私はどのようにアクションバーを含まない画面のピクセルの高さを得ることができるのだろうかと思っています。したがって、実際の可視領域のピクセルの高さです。私はこれが欲しいので、GridLayoutのサイズを適切にすることができます。 GridLayoutLinearLayoutの中にありますので、もし私もLinearLayoutのピクセルの高さを得ることができるはずです。画面の高さからアクションバーを引いた値を取得するにはどうすればよいですか?

ありがとうございます!

答えて

1

は、全体の高さを計算:

public static int getScreenHeight(Activity activity) { 
    DisplayMetrics metrics = new DisplayMetrics(); 
    activity.getWindowManager().getDefaultDisplay().getMetrics(metrics); 
    return metrics.heightPixels; 
} 

をし、それから、アクションバーの高さを控除:

public static int getActionBarHeight(Context context) { 
    int[] textSizeAttr = new int[]{R.attr.actionBarSize}; 
    TypedArray a = context.obtainStyledAttributes(new TypedValue().data, textSizeAttr); 
    int height = a.getDimensionPixelSize(0, 0); 
    a.recycle(); 
    return height; 
} 
0

あなたは、画面上の特定のビューの座標を取得するためにView#getGlobalVisibleRect(Rect)を使用することができます。

 

    layout.post(new Runnable() { 
     @Override 
     public void run() { 
      final Rect rect = new Rect(); 
      layout.getGlobalVisibleRect(rect); 

      final int height = rect.height(); 
     } 
    }); 
 
関連する問題