Ich habe Probleme beim Erstellen eines LinearLayout mit einem ImageView innerhalb programmatisch (und fügen Sie dieses LinearLayout zu einem anderen LinearLayout). Der XML-Code, den ich tryng bin neu zu erstellen, ist dies:Wie LinearLayout mit ImageView erstellen und es zu einem anderen LinearLayout programmatisch hinzufügen
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout_morty_combinationsV"
android:gravity="center">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:background="@color/black"
android:layout_weight="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/morty"
android:id="@+id/imageView1"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:gravity="center"
android:background="@color/black"
android:layout_weight="1">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/morty"
android:id="@+id/imageView2"/>
</LinearLayout>
</LinearLayout>
Das ist mein Java-Code
LinearLayout ll_combinations = (LinearLayout) findViewById(R.id.linearLayout_morty_combinationsV);
Iterator<MortyObj> iterator = mortys.iterator();
while (iterator.hasNext()) {
final MortyObj mortyC = iterator.next();
LinearLayout ll_new = new LinearLayout(this);
ll_new.setOrientation(LinearLayout.VERTICAL);
ll_new.setGravity(Gravity.CENTER);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.MATCH_PARENT);
params.weight = 1f;
ll_new.setLayoutParams(params);
ll_new.setBackgroundColor(Color.WHITE);
ImageView morty_imageview = new ImageView(this);
try {
InputStream ims = getAssets().open("morty_images/" + mortyC.getId() + ".png");
Drawable d = Drawable.createFromStream(ims, null);
morty_imageview.setImageDrawable(d);
} catch (IOException e) {
e.printStackTrace();
}
FrameLayout.LayoutParams imgParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT);
morty_imageview.setLayoutParams(imgParams);
ll_new.addView(morty_imageview);
ll_combinations.addView(ll_new);
}
Dies ist, wie es aussehen sollte:
Und das So sieht es aus:
Ich habe in den letzten 2 Stunden in diesem stecken.
Warum nehmen Sie Frame Layout entfernen Sie diese Zeile. Weil ich deine XML-Datei sehe, solltest du die Bildansicht innerhalb des linearen Layouts haben wollen. In Ihrem Programm Fügen Sie einfach Ihre Bildansicht innerhalb des ll_new linearen Layouts und ll_new in den ll_combiations hinzu. –
Entfernen Sie außerdem alles im übergeordneten Layout Ihrer XML-Datei. Weil du versuchst, das Programm nachzudenken. –
Das Entfernen von imgParams ändert nichts. Ich habe imagwview zu ll_new und ll_new zu ll_combinations hinzugefügt, das sind die letzten beiden Zeilen. Ich habe auch das XML gereinigt, bevor ich etwas hinzugefügt habe. –