2014-02-26 273 views
0

我正在尝试在简单的应用程序上创建一些交互,以便重新定位图像。在做了一些Google搜索之后,我发现应该能够做这项工作,但我似乎无法获得任何工作。用目前的代码,我的客户端会崩溃,但我会奇怪地得到任何错误输出。设置ImageView位置 - Android

检查这个link。我做错了什么?

我现在用的是following XML绘制图像

我还试图用这个沿着setXsetY方法,这些方法在ImageView默认,但是当我尝试他们根本无法识别跑。因此我正在研究更复杂的代码片段。

+0

嘿,你为什么要在[Reddit](http://www.reddit.com/r/androiddev/comments/1yzf2a/how_to_set_the_position_of_an_imageview/)上发布这个内容,以期获得快速响应...... *只是说* – t0mm13b

+0

四个小时。非常不耐烦,是的。 – Rellac

+0

*互联网必须是非常严肃的业务* ... – t0mm13b

回答

2

您不能从LinearLayout.LayoutParams投射到AbsoluteLayout.LayoutParams,这可能是您得到的错误。

将AbsoluteLayout.LayoutParams更改为LinearLayout.LayoutParams,因为imageView处于linearLayout中,也不推荐使用AbsoluteLayout。

如果您想要动态移动视图(更改位置),请使用translateX和translateY属性。

希望这会有所帮助。

+0

编辑:我能够启动应用程序,但我无法从我的形象有任何回应。它只是像拉里那样坐在那里,我没有错误输出,只有缺乏交互。我在某处是否有逻辑错误?似乎很有可能,但我不知道它可能是什么...... – Rellac

+0

这是我更改了LinearLayout的代码之后。 – Rellac

0

一旦你已经包含一个小部件(在你的情况下一个ImageView)到xml布局中,它就会被绑定到该视图。在运行时需要移动/移除/替换它们时,动态添加小部件更容易(也是最好的做法)。例如,您可以将您的RelativeLayout容器保留为布局文件的空白,并使用RelativeLayout.addView()将此ImageView添加到onCreate()方法中。

0

我认为最简单的是(如果使用超过3.0),

imageView.animate().translateX() 

animate()将返回你ViewPropertyAnimator。

如果您使用的是FrameLayout您的方法LayoutParams也可以。