gpt4 book ai didi

android - setImageDrawable 未设置当前可绘制对象

转载 作者:行者123 更新时间:2023-11-30 03:12:47 25 4
gpt4 key购买 nike

在阅读了数十个关于该主题的问答后,我找不到这种情况的答案。

在我的应用中,用户将不同的图标从一个表格布局拖到另一个表格布局(底部表格布局有点像“图标键盘”)。

将图标拖到上面的表格(它替换那里的占位符图像)后,用户应该能够继续将它拖到不同的位置。

现在,第一部分效果很好。我可以将图标从“键盘”拖到上面的表格布局中。但出于某种原因,当我尝试在此布局内的不同位置之间拖动它时,应该更改为图标的 imageView 保持相同的可绘制对象(占位符)。

public boolean onDrag(View v, DragEvent event) {
ImageView imageOnBoard = (ImageView) v;
switch (event.getAction()) {
case DragEvent.ACTION_DRAG_STARTED:
break;
case DragEvent.ACTION_DRAG_ENTERED:
imageOnBoard.setBackgroundColor(0xFF00FF00);

break;
case DragEvent.ACTION_DRAG_EXITED:
imageOnBoard.setBackgroundColor(color.transparent);
imageOnBoard.setOnTouchListener(null);
break;
case DragEvent.ACTION_DROP:


imageOnBoard.setBackgroundColor(color.transparent);
TableRow tr1 = (TableRow) imageOnBoard.getParent();
int r=tr1.indexOfChild(imageOnBoard);
TableLayout tl1 = (TableLayout) tr1.getParent();
int c=tl1.indexOfChild(tr1);


ImageView strategyIcon = (ImageView) (event.getLocalState());
TableLayout source = (TableLayout) strategyIcon.getParent().getParent();
if (source.equals((TableLayout) findViewById(R.id.tableLayout)))
{

Drawable draw = strategyIcon.getDrawable();
imageOnBoard.setImageDrawable(draw);

}
else
{

Drawable draw = strategyIcon.getDrawable();
imageOnBoard.setImageDrawable(draw);

}


imageOnBoard.setVisibility(View.VISIBLE);
imageOnBoard.setOnTouchListener(new MyTouchListener());

break;
case DragEvent.ACTION_DRAG_ENDED:

break;

default:
break;
}
return true;
}

如您所见,我将 DRAG_DROP 操作分为两种情况(从“键盘”拖动和在上层布局内拖动。我测试了它,它确实进入了不同的情况,但可绘制对象似乎成为“未更新”。

请帮忙!

我现在明白问题是在第二次提取 Drawable (getDrawable) 时,从上层布局中,我没有收到当前的 drawable,而是原始的。我该如何处理?

最佳答案

我遇到了同样的问题,当我使用 image1.setImageDrawable(add); 将 Image 设置为 ImageView 时有时它不起作用,后来我使用 glide 设置图像:例如Glide.with(Activity.this).load(R.drawable.add).into(image1);然后它工作正常

关于android - setImageDrawable 未设置当前可绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20654727/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com