2012-02-21 8 views
0

ImageViewとTextViewを中心にRelativeLayoutを返す関数を作成しようとしています。RelativeLayoutの重力:centerは機能しません

public RelativeLayout makeKey(String letter, int alfa) 
{ 

    final RelativeLayout RelBtn = new RelativeLayout(this); 
    RelBtn.setGravity(Gravity.CENTER); 
    RelBtn.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 

    final ImageView ivBg = new ImageView(this); 
    ivBg.setImageBitmap(bmBtnBg); 
    ivBg.setPadding(5, 5, 5, 5); 
    RelBtn.addView(ivBg); 

    TextView tvLetterSHD = new TextView(this); 
    tvLetterSHD.setTextSize(22); 
    tvLetterSHD.setTypeface(null, Typeface.BOLD); 
    tvLetterSHD.setTextColor(0xFF000000); 
    tvLetterSHD.setText(letter); 
    tvLetterSHD.setPadding(0, 3, 0, 0); 
    RelBtn.addView(tvLetterSHD); 

    TextView tvLetter = new TextView(this); 
    tvLetter.setTextSize(22); 
    tvLetter.setTypeface(null, Typeface.BOLD); 
    tvLetter.setTextColor(0xFFFFFFFF); 
    tvLetter.setText(letter); 
    RelBtn.addView(tvLetter); 

    return RelBtn; 
} 

ただし、このようなことが起こっています。わかるように、TextViewは中心にありません。

何が間違っている可能性がありますか?ありがとう! :)

enter image description here

答えて

1

Uは、子粒子のためのLayoutParams android:layout_centerInParentを設定することができます。

RelativeLayout lpCenter = new RelativeLayout.LayoutParams(w, h); 
lpCenter.addRule(RelativeLayout.CENTER_IN_PARENT); 
tvLetter.setLayoutParams(lpCenter); 
関連する問題