2017-05-16 4 views
0

Entschuldigung wenn der Titel nicht gut ist. Ich möchte eine Ansicht und das folgende untergeordnete Element vergrößern/verkleinern.Wie skaliert/skalieren Sie eine Ansicht und ihren Inhalt proportional?

Ich versuchte mit setScaleX und setScaleY, die die einfachste ist, aber die Ansicht Grenzen bleiben unverändert und lässt einen leeren Rand. Ich habe versucht, es manuell zu ändern, indem ich die Höhe und die Breite änderte, einschließlich es childs, aber es ist irgendwie schwierig für mich, die proportionale Größe der childs beizubehalten, wenn sie TextView enthält.

Gibt es einen besten Weg es zu erreichen?

Antwort

0

Sie können die folgende Methode verwenden, um eine Ansicht und die folgenden untergeordneten Objekte zu skalieren. Hoffe, es kann Ihnen helfen,

 public static void scaleView(View view, float scaleX, float scaleY) { 
      if (view instanceof ViewGroup) { 
       int viewCount = ((ViewGroup) view).getChildCount(); 
       for (int i = 0; i < viewCount; i++) { 
        scaleView(((ViewGroup) view).getChildAt(i), scaleX, scaleY); 
       } 
      } 
      view.setScaleX(scaleX); 
      view.setScaleY(scaleY); 
     } 
0

Dazu Sie proportional Höhe und Breite jedes Layout und sein Kind berechnen müssen .Und dann können Sie Margen berechnen und setzen MarginLayoutParms zu jeder Ansicht.

Und proportionale Höhe und Breite sollten in Bezug auf ihre übergeordneten Layout Höhe und Breite jedes Mal berechnet werden, wenn Sie Höhe und Breite der Ansicht ändern, dynamisch proportional berechnen und Höhe und Breite und Ränder werden entsprechend festgelegt.

Verwandte Themen