android中我在一个RelativeLayout中放入了一个ImageView,我的Imageview自定义之可以拖动,也就是可以在这 10

个布局里移动位置,用imageView.layout(l,t,r,b),但是当我再次设置了imageview的background后,它还会回到这个Relativelay... 个布局里移动位置,用imageView.layout(l,t,r,b),但是当我再次设置了imageview的background后,它还会回到这个Relativelayout的左上角,并回不到我前期拖动的位置,怎么样才能回到原来的位置呢? 展开
 我来答
百度网友a3a7219
2012-05-08 · 超过10用户采纳过TA的回答
知道答主
回答量:35
采纳率:0%
帮助的人:30万
展开全部
这个问题是给imageView设置了background后会调用它的onLayout函数使得imageView在relativeLayout里面重新布局引起的。没什么特别的办法,在设置背景之前保存layout的四个参数,设置背景之后再调用一次layout吧~
追问
我又次layout()了,设置的也正是以前记录下来的位置,但是不起作用,我用的方法是在它外层加一个Relativelayout,设它的leftMargin和topMargin来实现
zd1985jd
2012-05-16 · 超过21用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:49.8万
展开全部
重写这个Relativelayout 的onlayout函数,在这里边设定imageView 的layout的参数
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-11-27
展开全部
我的也出现这现象,不过已经解决了
int d_x = (int) (upX - downX);
int d_y = (int) (upY - downY);
v.layout(v.getLeft() + d_x, v.getTop() + d_y, v.getRight() + d_x,
v.getBottom() + d_y);
RelativeLayout.LayoutParams para = (LayoutParams) v.getLayoutParams();
para.leftMargin = v.getLeft();//移动后把位置信息设置到参数去
para.rightMargin = v.getRight();
para.topMargin = v.getTop();
para.bottomMargin = v.getBottom();
para.removeRule(RelativeLayout.CENTER_IN_PARENT);//这句话关键啊,我之前怎么设置Margin都没用,就是这句影响的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式