2015-03-13 65 views
0

我已經創建了一個拖放應用程序,允許用戶從頂部拖動4個圖像,並將其放置在底部。我在底部有4個圖像視圖和4個圖像視圖。將它們降到最低,但是當我嘗試將它們並排移動時,我遇到了問題。更改下降圖像背景

我有2個臨時圖像,我把它們設置爲等於一個imageview。如果我將圖像從圖像視圖6移動到圖像視圖5,它應該交換圖像,但它只是將圖像視圖6更改爲圖像視圖5和圖像視圖5保持不變。

這裏是代碼片段到我試圖改變圖像

droppedSwap等於圖像的用戶選擇移動
dropTargetSwap等於用戶想要的地方圖像去

if (dropTargetSwap.equals(ivHero5) && droppedSwap.equals(ivHero6)) 
      { 
       //set temp imageview that is equal to ivHero5 
       ImageView tempDropTarget = ivHero5; 

       //set temp imageview that is equal to ivHero6 
       ImageView tempDropped = ivHero6; 

       //supposed to set ivHero6 to ivHero5 image 
       droppedSwap.setBackground(tempDropTarget.getBackground());// working 

       //supposed to set ivHero5 to ivHero6 image 
       dropTargetSwap.setBackground(tempDropped.getBackground());// not working 
      } 

回答

1

你的問題是,這樣做:

ImageView tempDropTarget = ivHero5; 
ImageView tempDropped = ivHero6; 

你不是真正創建臨時副本,但原來的對象,而引用,所以當你droppedSwap.setBackground()你實際上設置ivHero6背景,當你做tempDropped.getBackground()你正在獲得先前更改的ivHero6背景。 您應該創建的背景,這是使用可繪製的副本:

+0

美麗。非常感謝!我正在調整需要完成的任務,但卻一直停留在那裏。 – 2015-03-13 13:06:05