2013-03-07 96 views
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()); 
} 
+0

使用相对布局。 – Anukool 2013-03-07 10:33:04

+0

我怎么只用于按钮2 ??帮助我PLZ – 2013-03-07 10:35:22

+0

这里是滚动视图上的androids文档“A ScrollView是一个FrameLayout,这意味着你应该放置一个包含整个内容的孩子滚动”......在你的情况下,孩子是线性布局。您剩下两个选项:(1)使用相对布局而不是线性布局和位置按钮(2)使用相对布局,仅添加按钮2并在原始线性布局中添加此相对布局。我会建议选项1.你是否希望我发布任何这些选项的代码? – drulabs 2013-03-07 10:46:28

回答

0
在活动XML

,复制粘贴到所需的按钮组件如下:

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

只用数字游戏,我相信日子会把你得到了它的窍门:)

2

一种可能的方法是使用RelativeLayout作为基础布局,并使用RelativeLayout.LayoutParams类将所有其他子视图添加到此布局,以设置布局参数。

RelativeLayout.Layoutparams.left的和RelativeLayout.Layoutparams.top属性可以是你的(X,Y)共对基本视图 坐标。

相关问题