我正在使用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);
答案 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)