Ich verwende ein TableLayout in meiner Anwendung. Es enthält vier TableRows, die jeweils vier ImageViews enthalten. Das gewünschte Verhalten ist das Skalieren des Layouts auf die kürzeste Dimension.Wie bekomme ich ein Android TableLayout, um die Eltern im Querformat zu füllen?
Im Hochformat funktioniert es gut, im Querformat klappt es jedoch kläglich.
Aus der documentation sieht es so aus, weil die TableRow layout_height immer auf WRAP_CONTENT festgelegt ist. Während ich die Dimensionen der einzelnen Ansichten einstellen kann, wird die TableLayout überhaupt nicht rendern, wenn ich die View layout_height auf FILL_PARENT setze.
Ich fühle mich wie es ist etwas einfaches, das ich vermisse. Gibt es eine Möglichkeit, das TableLayout mit TableRows zu skalieren, um die Höhe im Querformat anzupassen?
XML Layout:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/table"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:shrinkColumns="*">
</TableLayout>
Java:
public class Example extends Activity {
private TableLayout mTable;
private int[] mDrawableIds = { R.drawable.draw01, R.drawable.draw02, R.drawable.draw03, R.drawable.draw04, R.drawable.draw05, R.drawable.draw06, R.drawable.draw07, R.drawable.draw08, R.drawable.draw09, R.drawable.draw10, R.drawable.draw11, R.drawable.draw12, R.drawable.draw13, R.drawable.draw14, R.drawable.draw15, R.drawable.draw16 };
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mTable = (TableLayout)findViewById(R.id.table);
for (int j=0; j<4; j++) {
TableRow tr = new TableRow(this);
tr.setLayoutParams(new ViewGroup.LayoutParams( LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
for (int i=0; i<4; i++) {
ImageView iv = new ImageView(this);
iv.setImageResource(mDrawableIds[j*4+i]);
iv.setScaleType(ImageView.ScaleType.FIT_CENTER);
iv.setAdjustViewBounds(true);
tr.addView(iv);
}
mTable.addView(tr);
}
}
}
Funktioniert ein GridView nicht für Ihren Anwendungsfall? GridView-Tutorial hier: http://developer.android.com/guide/tutorials/views/hello-gridview.html –
GridView scheint zu scrollen, anstatt die ImageViews auf das Landscape-Layout zu skalieren. Vielleicht, wenn ich die Bildressourcen verkleinern würde, könnte das funktionieren. Ich hatte gehofft zu vermeiden, die Größe der Bilder zu ändern. –