如何固定android中ImageView的位置

怎么才能把ImageView的图片固定在一个位置上呢,当我我按下一张,就换成下一张图片,可是下一张图片大小和前一张不一样,所以位置也会发生变化。... 怎么才能把ImageView的图片固定在一个位置上呢,

当我我按下一张,就换成下一张图片,可是下一张图片大小和前一张不一样,所以位置也会发生变化。
展开
 我来答
匿名用户
推荐于2016-05-22
展开全部
基本都是采用继承ImageView,并提供setLocation方法,其实质是调用ImageView没有开放的setFrame方法来设置位置。通常写法如下:
class MyView extends ImageView
{
public MyView(Context context,float x,float y)
{
super(context);
setBackgroundResource(R.anim.blast);
}
// 定义一个方法,该方法用于控制MyView的显示位置
public void setLocation(int top, int left)
{
this.setFrame(left, top, left + 40, top + 40);
}
}
这样写是没有问题的,但我遇到一个问题,当ImageView更换图片(setImageBitmap)后,第一次总是出现在屏幕的左上角。这个问题我在百度上查了,没有任何人给出了答案。于是花了点时间来研究,终于有了办法。当设置setImageBitmap后,如果要改变ImageView出现的位置,必须采用设置margin的方法,
//在FrameLayout中,将view移动到指定位置。
private void moveLocation(View view, float curX, float curY) {
LayoutParams params = (LayoutParams)view.getLayoutParams();
params.leftMargin = (int) (curX);
params.topMargin = (int) (curY);
view.setLayoutParams(params);
}
同时,view的布局方式必须要设置android:layout_gravity,例如android:layout_gravity="left|top",其实设置为什么值并不重要,但一定要设置。之后,就可以调用setLocation来设置ImageView的位置了。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式