2013-03-07 118 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)共對基本視圖 座標。