android sdk设置imageview x y坐标

时间:2012-02-07 03:48:12

标签: java android

我正在使用absolutelayout(我知道它已被弃用)。我正在动态添加imageview,但我无法从屏幕的左上角更改其位置。

ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.orb1);
this.addContentView(iv, new AbsoluteLayout.LayoutParams(80, 80, 200, 200));

但是,这会创建左上角为0,0而不是其他任何位置的图像。如果我更改布局参数的最后两个值,它仍然保持在该位置。

有人可以协助吗?感谢。

编辑:使用相对布局仍不起作用

ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.orb1);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(80, 80);
params.topMargin=50;
params.leftMargin=50;
this.addContentView(iv, params);

2 个答案:

答案 0 :(得分:3)

使用addView方法向布局添加视图,因为布局参数可以应用于布局而不是窗口,所以请执行以下操作:

RelativeLayout rlMain = (RelativeLayout) findViewById(R.id.mainLayout);

ImageView iv = new ImageView(this);
iv.setImageResource(R.drawable.orb1);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(80, 80);
params.topMargin=50;
params.leftMargin=50;
rlMain.addView(iv, params);

将mainLayout替换为您提供给relativelayout的id,imageVIew应该添加。

答案 1 :(得分:0)

我认为你不能通过使用AbsoluteLayout来达到目的。您应该使用RelativeLayout或FrameLayout来精确控制视图的位置。

我曾回答过类似的问题。请看这里:How to move a Textview dynamically on the screen? (framelayout)