我很困惑,这应该是中心,但事实并非如此。
public void addTableImage(String imageName, LinearLayout L){
ImageView newImage = new ImageView(c);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 150);
newImage.setLayoutParams(layoutParams);
int id = c.getResources().getIdentifier(imageName, "drawable", c.getPackageName());
RelativeLayout l1 = new RelativeLayout(c);
l1.setLayoutParams(new RelativeLayout.LayoutParams(400, 160));
l1.setBackgroundColor(Color.WHITE);
l1.setGravity(Gravity.CENTER);
newImage.setImageResource(id);
l1.addView(newImage);
L.addView(l1);
}
我得到了这个结果:
图像显示正常(是的,它只是一个占位符绿色框),背景已设置,所有内容都设置为Gravity.CENTER,但它仍然是左对齐。
奖励积分:任何人都知道为什么“提出问题”现在会自动填写您最后一个问题的信息?这有点令人困惑,让我觉得我实际上正在编辑一个旧问题。
答案 0 :(得分:2)
将您的代码更改为:
public void addTableImage(String imageName, LinearLayout L){
ImageView newImage = new ImageView(c);
RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(150, 150);
newImage.setLayoutParams(layoutParams);
int id = c.getResources().getIdentifier(imageName, "drawable", c.getPackageName());
RelativeLayout l1 = new RelativeLayout(c);
LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(400, 160);
lp.gravity=Gravity.CENTER;
l1.setLayoutParams(lp);
l1.setBackgroundColor(Color.WHITE);
l1.setGravity(Gravity.CENTER);
newImage.setImageResource(id);
l1.addView(newImage);
L.addView(l1);
}
通过将相对布局的重力设置为居中,您的图像在相对布局内居中。
但是要将相对布局本身设置为Linearlayout的中心,您需要将布局重力设置为相对布局的中心,将LinearLayout的中心或重力设置为居中。 您可以尝试上面应该运行的代码。