2017-03-09 9 views
1

Ich bin dynamisch Hinzufügen von ImageViews in einer LinearLayout Hexe in einem HorizontalScrollView.Legen Sie Breite und Höhe basierend auf Dimensionen der übergeordneten Eltern Android Studio

Jetzt möchte ich die Breite und Höhe dieser ImageViews basierend auf dem übergeordneten LinearLayout dieser HorizontalScrollView festlegen.

Das ist mein xml (information_imagescrollview_item.xml):

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/parentlayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingTop="5dp" 
    android:paddingBottom="5dp"> 
    <HorizontalScrollView 
     android:id="@+id/horizontal_scroll" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" > 
     <LinearLayout 
      android:id="@+id/linear" 
      android:layout_width="wrap_content" 
      android:layout_height="match_parent" 
      android:orientation="horizontal" > 
     </LinearLayout> 
    </HorizontalScrollView> 
</LinearLayout> 

und dies ist mein Code:

View contentView = inflater.inflate(R.layout.information_imagescrollview_item, container, false); 
LinearLayout scrollViewLayout = (LinearLayout) contentView.findViewById(R.id.linear); 
for(Object intObj : page.content) { 
    ImageView imageView = new ImageView(this.getContext()); 
    Drawable myDrawable = getResources().getDrawable((int) intObj); 
    imageView.setImageDrawable(myDrawable); 
    scrollViewLayout.addView(imageView); 
} 
page.addView(contentView); 

Wie kann ich jeden Imageview setzen die gleiche Breite und Höhe wie die parentlayout haben in der XML?

Antwort

1

Es ist möglich, die Abmessungen einer dynamischen Ansicht nach Code zu ändern. So würde ich wette, Sie sollten die ImageView ‚s Layout-Parameter in der for Schleife, bevor es zu einem Linearlayout wie folgt ergänzt:

for(Object intObj : page.content) { 
    ImageView imageView = new ImageView(this.getContext()); 
    Drawable myDrawable = getResources().getDrawable((int) intObj); 
    imageView.setImageDrawable(myDrawable); 
    //Changing height... 
    imageView.getLayoutParams().height = ViewGroup.LayoutParams.MATCH_PARENT; 
    //...and width 
    imageView.getLayoutParams().width = ViewGroup.LayoutParams.MATCH_PARENT; 
    scrollViewLayout.addView(imageView); 
} 

Dies wird die ImageView gesetzt‘ ändern s Breite und Höhe an die, die (Eltern) LinearLayout die Breite und Höhe.

+0

Wenn ich imageView.getLayoutParams() hinzufügen. Width = ViewGroup.LayoutParams.MATCH_PARENT; Das Bild ist immer noch fast doppelt so groß wie die Bildschirmbreite. – Walter

+0

Möchten Sie die Bilder nacheinander wie in einer Galerie-App scrollen? – Geryson

+0

Ja. Aber zwischen ein paar Textansichten, – Walter

Verwandte Themen