更改下降图像背景

问题描述:

我已经创建了一个拖放应用程序,允许用户从顶部拖动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 
      } 

你的问题是,这样做:

ImageView tempDropTarget = ivHero5; 
ImageView tempDropped = ivHero6; 

你不是真正创建临时副本,但原来的对象,而引用,所以当你droppedSwap.setBackground()你实际上设置ivHero6背景,当你做tempDropped.getBackground()你正在获得先前更改的ivHero6背景。 您应该创建的背景,这是使用可绘制的副本:

+0

美丽。非常感谢!我正在调整需要完成的任务,但却一直停留在那里。 – 2015-03-13 13:06:05