2014-02-26 321 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也可以。