2013-03-29 26 views
0

我有一個程序,生成一個4按鈕行,在一個水平的容器,被添加到一個垂直的容器。試圖中心按鈕,TextView和圖像視圖我創建動態

我不知道如何擁有它,所以按鈕居中,現在他們是對齊到右側。代碼:

for(int i=0; i<cGlobals.mNames.length; i+=2) { 
    iSoundIdList[i]=soundPool.load(this, cGlobals.mSounds[i], 1); 
    iSoundIdList[i+1]=soundPool.load(this, cGlobals.mSounds[i+1], 1); 

    // would like these views to all be centered  
    LinearLayout layout = new LinearLayout(this); 
    layout.setOrientation(LinearLayout.HORIZONTAL); 
    LinearLayout.LayoutParams llp = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
    layout.setLayoutParams(llp); 

    favBut[i]=new ImageView(this); 
    favBut[i].setImageResource(R.drawable.heartunselected); 
    favBut[i].setId(defStartFavId+i); 
    favBut[i].setOnClickListener(this); 
    layout.addView(favBut[i]); 

    Button but1=new Button(this); 
    but1.setText(cGlobals.mNames[i]); 
    but1.setWidth(120); 
    layout.addView(but1); 
    but1.setOnClickListener(this); 
    but1.setId(defStartButId+i); 

    TextView t=new TextView(this); 
    t.setText(" "); 
    layout.addView(t); 

    favBut[i+1]=new ImageView(this); 
    favBut[i+1].setImageResource(R.drawable.heartunselected); 
    favBut[i+1].setId(defStartFavId+i+1); 
    favBut[i+1].setOnClickListener(this); 
    layout.addView(favBut[i+1]); 

    t=new TextView(this); 
    t.setText(" "); 
    layout.addView(t); 

    Button but2=new Button(this); 
    but2.setText(cGlobals.mNames[i+1]); 
    but2.setWidth(120); 
    but2.setId(defStartButId+i+1); 
    but2.setOnClickListener(this); 
    layout.addView(but2); 
    Container.addView(layout); 
} 
+0

不使用個XML會有所幫助。 – Unknown

回答

1

下面摘錄

RelativeLayout relativeLayout = new RelativeLayout(this); 
relativeLayout.setLayoutParams(new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.FILL_PARENT, 
    RelativeLayout.LayoutParams.FILL_PARENT)); 

ImageView imageView = new ImageView(this); 
imageView.setImageResource(getResources().getIdentifier(
    "sample_image", "drawable", getPackageName())); 

RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
    RelativeLayout.LayoutParams.WRAP_CONTENT, 
    RelativeLayout.LayoutParams.WRAP_CONTENT); 
lp.addRule(RelativeLayout.CENTER_IN_PARENT); 
imageView.setLayoutParams(lp); 

relativeLayout.addView(imageView);