我在使用某些代码时出现问题,我只需点击两个imageViews(一个包含源图像,然后是目标),就可以将imageView的drawable移动到另一个imageView imageView)接连。
目标是模拟棋盘。
我的开始显示如下:
点击最左边的棋子然后直接点击它前面的方块,结果如下。您将看到目标imageView(第一列第3行)正在丢失其水平边界定义并在整个tableRow中展开:
现在,我还在每个方块中重置标签以及抽屉,但我想这个问题源于我获取和设置抽屉的方式。
我的代码如下:
int selectedId = getResources().getIdentifier(selectedSquare, "id", getPackageName());
ImageView sourceSquare = (ImageView) findViewById(selectedId);
Drawable sourceDrawable = sourceSquare.getDrawable();
ImageView targetSquare = (ImageView) findViewById(R.id.s20);
targetSquare.setImageDrawable(sourceDrawable);
我的猜测是我创建的sourceDrawable
变量以某种方式抓取太多或太少的信息,当我将该drawable移动到新的imageView targetSquare
时,这会破坏我的格式。
答案 0 :(得分:1)
您可以为新的ImageView提供原点的源LayoutParams:
targetSquare.setLayoutParams(sourceSquare.getLayoutParams);