我正在尝试创建一个函数,该函数将返回RelativeLayout,并在中心使用ImageView和TextView。
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偏离中心。
任何想法可能出错?谢谢! :)
答案 0 :(得分:1)
你可以为子粒子设置LayoutParams android:layout_centerInParent
:
RelativeLayout lpCenter = new RelativeLayout.LayoutParams(w, h);
lpCenter.addRule(RelativeLayout.CENTER_IN_PARENT);
tvLetter.setLayoutParams(lpCenter);