0

私のコードでは、プログラムでボタン 2 を作成し、プログラムで画面の中央に位置を設定するにはどうすればよいですか? これは私の画面のイメージですhttps://imgur.com/7wdyVc6 送信ボタン(button2) は forloop ボタンのすぐ下に作成され、画面の中央に位置を設定するにはどうすればよいですか?

    ScrollView scroll = new ScrollView(MainActivity1.this);
    scroll.setLayoutParams(new  
      LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT,  
        LayoutParams.WRAP_CONTENT));         

    btnLO = new LinearLayout(MainActivity1.this);   
    LinearLayout.LayoutParams paramsLO = new  
      LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    // button margins
    paramsLO.setMargins(0, 0, 0, 0);
    // button height/width *pixels*
    paramsLO.height = 75;
    paramsLO.width = 75;

    btnLO.setOrientation(LinearLayout.VERTICAL);
    btnLO.setBackgroundColor(5); // not working correctly

    //buttons
    for (i = 0;i < reqdata.length;i++)
    {
        LinearLayout li=new LinearLayout(this);
        li.setOrientation(LinearLayout.HORIZONTAL);
        final Button b1 = new Button(MainActivity1.this);
        final ImageView imageView = new ImageView(MainActivity1.this);

        li.addView(b1, paramsLO);        
        li.addView(imageView, paramsLO);
        btnLO.addView(li);

        b1.setText(reqdata[i].getSpinnerText());

        b1.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v) 
            {
                imageView1 = imageView;
                Intent pictureActionIntent = new
                  Intent(MediaStore.ACTION_IMAGE_CAPTURE); 

                pictureActionIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new  
                File(SDCARD_ROOT_PATH + SAVE_PATH_IN_SDCARD,IMAGE_CAPTURE_NAME)));  

                startActivityForResult(pictureActionIntent,CAMERA_PICTURE);
                b1.setClickable(false);
            }   
        });
    }

    final Button b2 = new Button(MainActivity1.this);
    b2.setText("Submit");
    b2.setOnClickListener(new View.OnClickListener() 
    {
        public void onClick(View v) 
        {
            long visitID = dbConnector.saveVisit();

            for (i =0;i <reqdata.length;i++)
            {
                dbConnector.saveVisitDetail(listByte.get(i),visitID,Long.valueOf(reqdata[i]
                  .getValue()).longValue());
            }
        }
    }); 
    btnLO.addView(b2, paramsLO);
    btnLO.setGravity(Gravity.LEFT | Gravity.CENTER_HORIZONTAL);
    scroll.addView(btnLO);

    this.addContentView(scroll, new LayoutParams());
}
4

2 に答える 2

2

考えられる方法の 1 つは、 をベース レイアウトとして使用し、レイアウト パラメータを設定するクラスをRelativeLayout使用して、他のすべての子ビューをこのレイアウトに追加することです。RelativeLayout.LayoutParams

RelativeLayout.Layoutparams.leftおよび属性は、ベース ビューのRelativeLayout.Layoutparams.top(x,y) 座標にすることができます。

于 2013-03-07T11:11:27.360 に答える
0

アクティビティ xml で、目的のボタン コンポーネントに以下をコピー ペーストします。

android:layout_marginBottom="147dp"
android:layout_marginTop="50dp"
android:layout_marginleft="50dp"
android:layout_marginRight="47dp"

数字だけで遊んでください。きっとコツがつかめます :)

于 2013-03-07T11:10:20.997 に答える