更改下降图像背景
问题描述:
我已经创建了一个拖放应用程序,允许用户从顶部拖动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背景。 您应该创建的背景,这是使用可绘制的副本:
美丽。非常感谢!我正在调整需要完成的任务,但却一直停留在那里。 – 2015-03-13 13:06:05