0

Wenn ich das Telefon in der Landschaft habe, frage ich mich, wie ich die Pixelhöhe des Bildschirms ohne die Actionbar bekommen kann. Also die Pixelhöhe des tatsächlich sichtbaren Bereichs. Ich will das, damit ich eine GridLayout entsprechend bemessen kann. Die GridLayout ist innerhalb eines LinearLayout so, wenn ich die Pixelhöhe des LinearLayout bekommen könnte, sollte das auch funktionieren.Wie bekomme ich die Bildschirmhöhe abzüglich der Aktionsleiste?

Danke! Berechnen

Antwort

1

die gesamte Höhe:

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

und abziehen Aktionsleiste Höhe von ihm:

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

Sie View#getGlobalVisibleRect(Rect) verwenden können die Koordinaten einer bestimmten Ansicht auf dem Bildschirm zu bekommen.

 

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

      final int height = rect.height(); 
     } 
    }); 
 
Verwandte Themen