전체 화면을 채우기 위해 셀과 행이있는 테이블 레이아웃을 채우려고합니다. 이처럼 :android : layout_weight가있는 TableLayout에 프로그래밍 방식으로 채우기
http://imageshack.us/photo/my-images/69/device20120201005942.png/
Eclipse에서 그래픽 레이아웃 창에서 디자인이 레이아웃은 내가 원하는 것을 제공 (안드로이드 : layout_weight를 스트레칭 수직 해결) :
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center"
android:stretchColumns="*" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center" android:layout_weight="1">
<ImageView
android:id="@+id/imageView1"
android:layout_gravity="center"
android:src="@drawable/add" />
<ImageView
android:id="@+id/imageView2"
android:layout_gravity="center"
android:src="@drawable/bound" />
<ImageView
android:id="@+id/imageView3"
android:layout_gravity="center"
android:src="@drawable/cod" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:layout_weight="1" >
<ImageView
android:id="@+id/imageView4"
android:layout_gravity="center"
android:src="@drawable/delete" />
<ImageView
android:id="@+id/imageView5"
android:layout_gravity="center"
android:src="@drawable/delete2" />
<ImageView
android:id="@+id/imageView6"
android:layout_gravity="center"
android:src="@drawable/floppy" />
</TableRow>
</TableLayout>
나는 내에서 동일한 모양을 만들려고하고 있어요 코드하지만 지금까지 실패했습니다. 여기 내 활동의 한 OnCreate입니다 :
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.tablelo);
TableLayout tl = (TableLayout) findViewById(R.id.table);
Log.d(TAG, "Width :" + tl.getWidth());
for (int row = 0; row < 3; row++) {
TableRow tr = new TableRow(this);
tr.setId(100 + row);
for (int cell = 0; cell < 3; cell++) {
ImageView image = new ImageView(this);
image.setImageResource(imageIDs[row * 3 + cell]);
tr.addView(image);
}
tr.setGravity(Gravity.CENTER);
LayoutParams params = new TableRow.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT, 1);
tr.setLayoutParams(params);
tl.addView(tr, params);
}
tl.setStretchAllColumns(true);
}
나는 이미지 뷰 중력을 설정하는 코드를 놓치고는 있지만,이 시도는 충돌 원인 :
image.setLayoutParams(new FrameLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, Gravity.CENTER));
이 코드는 3 개 행이 만든 결과, 각 스트레칭이 아닌 수평으로 만 수직 :
http://imageshack.us/photo/my-images/835/gridc.png/
내가 여기 실종 찾을 수 없습니다. 또한 디자이너에서 tablerow를 준비하고 런타임 중에 테이블에 추가하고 팽창하려했지만 결과는 변경되지 않았습니다.
그래서 어떻게 든 편집기로 만들 수있는 레이아웃과 프로그래밍 방식으로 같은 레이아웃을 만들고 싶습니다.
도움말, 제발!
위 레이아웃을 위의 3 개의 레이아웃 xml (테이블 하나, 행 하나, 이미지 뷰 하나)로 나누고 런타임 중에 설정하여 일부 속성이 누락되었는지 확인하려고했습니다. 그러나 여전히 같은 문제. – volkan