2

我已经为记忆游戏申请了它。它工作正常,但是当我将方向从横向更改为纵向时,第一行和第二行之间有一个微小的差距。. 我制作了一个 tableLayout,在其中制作了一行,我在其中动态地制作行并在单击时插入按钮。

编辑:图像这里(见黑色椭圆内)

布局:

 <?xml version="1.0" encoding="utf-8"?>

 <TableLayout android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android" 

android:id="@+id/TableLayout03">


<TableRow android:id="@+id/TableRow05" 
android:layout_width="wrap_content"
android:layout_height="wrap_content">

<TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/tv1" 
    android:textColor="#FFFFFF"
    android:textStyle="bold"
    android:textSize="20dip"
    android:paddingLeft="10sp"
    android:paddingBottom="13.64dip" 
    android:layout_weight="1">

</TextView>

 <Chronometer
        android:id="@+id/chronometer1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Chronometer"
        android:textStyle="bold"
        android:textSize="20dip"
        android:paddingBottom="13.64dip"
        android:textColor="#FFFFFF" />
 </TableRow>

    <TableRow android:id="@+id/TableRow03" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="center"

        >

<LinearLayout android:id="@+id/LinearLayout01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:gravity="center">

</LinearLayout></TableRow>
  <TableRow android:id="@+id/scorerow" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:gravity="center"
        >

<LinearLayout android:id="@+id/scorelinear" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:gravity="center">

    <TextView android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/scoreboard" 
    android:textColor="#FFFFFF"
    android:textStyle="bold"
    android:textSize="20dip"

    android:paddingLeft="10sp" 
    android:layout_weight="1">

  </TextView>

  </LinearLayout></TableRow>

    <RelativeLayout 
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
      android:layout_centerHorizontal="true"
      android:gravity="center"

       >

        <Button
            android:id="@+id/play_button"
            android:layout_width="80dip"
            android:layout_height="50dip"
            android:layout_alignParentBottom="true"

            android:text="Play"
            android:textColor="#ffffff"
            android:textSize="25dip"
            android:textStyle="bold" />

       </RelativeLayout>

   </TableLayout>

和Java代码相同的是:

private void newGame(int c, int r) {

    Log.v("Start"," New Game");

    tr = (TableRow)findViewById(R.id.TableRow03);
    tr.removeAllViews();
    tablebg = new TableLayout(tbcontext);
    tr.addView(tablebg);

    //tablebg.addView(createRow1());

    for (int y = 0; y < ROW_COUNT; y++) {
        tablebg.addView(createRow(y));
    }
  ......
  .....  
}

private TableRow createRow(int y){
    ///Log.v("Start"," Create New Row");
    TableRow row;
    row = new TableRow(tbcontext);
    row.setHorizontalGravity(Gravity.CENTER);
    row.setVisibility(View.VISIBLE);
    //row.setPadding(0, 0, 0, 0);
    for (int x = 0; x < COL_COUNT; x++) {
         row.addView(createImageButton(x,y));
    }
    tablerow[rw] = row; 
    rw++;
    return row;
}

private View createImageButton(int x, int y){
    //Log.v("Start"," Create Image Button");
    DisplayMetrics metrics = myContext.getResources().getDisplayMetrics();
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
    if(width < height) {//portrait
        w_width=((width-60)/4);
    }
    if(width > height){//landscape
        w_width=  ((height-100)/6);
    }
    Button button = new Button(tbcontext);
    //Button button = new Button(tbcontext);
    button.setBackgroundDrawable(Card_q);
    button.setId(100*x+y);
    button.setVisibility(View.VISIBLE);
    Log.v("button width",""+w_width);
    button.setWidth(w_width);
    button.setHeight(w_width);
    button.setOnClickListener(buttonListener1);
    bt[btn] = button;
    btn++;
    return button;
}   

当我从横向更改为纵向时没有问题。

4

0 回答 0