在 Android 中移动可绘制对象时遇到问题
Having trouble with moving a drawable in Android
我在设置一些代码时遇到问题,这些代码允许我通过连续单击两个 imageView(一个带有源图像,然后是目标 imageView)将一个 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
变量以某种方式获取了太多或太少的信息,当我将该可绘制对象移动到新的 imageView targetSquare
时,这破坏了我的格式。
你可以给新的ImageView origin的源LayoutParams:
targetSquare.setLayoutParams(sourceSquare.getLayoutParams);
我在设置一些代码时遇到问题,这些代码允许我通过连续单击两个 imageView(一个带有源图像,然后是目标 imageView)将一个 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
变量以某种方式获取了太多或太少的信息,当我将该可绘制对象移动到新的 imageView targetSquare
时,这破坏了我的格式。
你可以给新的ImageView origin的源LayoutParams:
targetSquare.setLayoutParams(sourceSquare.getLayoutParams);