2016-09-10 1 views
-2

Ich habe eine LinearLayout die sich wie programmatisch zusammen:Einstellung Linearlayout in verschiedenen Bildschirmgröße

listLinear=new LinearLayout(this); 
LinearLayout.LayoutParams listParam = new LinearLayout.LayoutParams(80, 
    ViewGroup.LayoutParams.MATCH_PARENT); 
listLinear.setLayoutParams(listParam); 

80 meine listLinear Breite ist. Ich möchte meine LinearLayout Breite 80 sein. Meine LinearLayout sieht perfekt aus, wie ich in 4,5-Zoll-Bildschirm will, aber wenn ich es in 5-Zoll-Display testen, schrumpft es nur und sieht klein aus.

Warum passiert es?

+0

Sie sollten nicht mit physischen Bildschirmgröße zu tun haben. Tun Sie es auf die Art "dp" oder "layout_weight". – Shaishav

Antwort

1

Das Problem ist der Konstruktor von LinearLayout.LayoutParams in Pixel, die Breite/Höhe erwartet.

Damit Ihr Layout auf allen Bildschirmgrößen gleich aussieht, sollten Sie die Breite in dip (dichteunabhängige Pixel) definieren.

So etwas sollte funktionieren:

listLinear = new LinearLayout(this); 

int widthDp = 50; // desired width in dp, adjust this as you'd like 

// converting dp to pixels 
DisplayMetrics displayMetrics = getResources().getDisplayMetrics(); 
int widthPx = Math.round(
    widthDp * (displayMetrics.xdpi/DisplayMetrics.DENSITY_DEFAULT)); 

LinearLayout.LayoutParams listParam = new LinearLayout.LayoutParams(widthPx, 
    ViewGroup.LayoutParams.MATCH_PARENT); 

listLinear.setLayoutParams(listParam); 
0

nach setcontentview Verwendung dieser Code

DisplayMetrics dm = new DisplayMetrics(); 
getWindowManager().getDefaultDisplay().getMetrics(dm); 

int width = dm.widthPixels; 
int height = dm.heightPixels; 
getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
getWindow().setLayout((int) (width), (int) (height * .2)); 
+0

Ich verwende diesen Code in der Serviceklasse, weil das lineare Layout an den windowmanager angehängt ist. Wie kann ich getwindowmanager() in der Serviceklasse – Adarsh

+0

in der Serviceklasse verwenden, benutze einen Konstruktor und rufe diesen Hauptaktivitätskontext dort auf. – snehasish

Verwandte Themen