我以编程方式在onCreate方法中向我的LinearLayout添加了一个ImageView,它可以正常工作。
img = new ImageView(this);
img.setImageResource(R.drawable.source);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(0, 50, 0, 0);
img.setLayoutParams(params);
layout = (LinearLayout) findViewById(R.id.index_view);
layout.addView(img);
当我想触摸屏幕时,我想改变它的x和y坐标 onTouch方法 - 案例ACTION_MOVE:
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
params.setMargins(newX, newY, 0, 0);
img.setLayoutParams(params);
newX和newY是根据用户触摸坐标
计算的但是这段代码似乎无法正常工作。 我创建了祝酒词以显示每次触摸后的图像宽度,它显示我在第一次触摸后将宽度设置为零。这告诉我:ImageView消失了。
任何猜测?
答案 0 :(得分:2)
我假设您确保在onTouch()中获得newX, newY
个值。
我觉得您的目标是编辑布局参数,但不是这样做,而是指定一个新参数集,其宽度和高度为{ {1}}然后设置边距。
您可能会尝试首先获取现有参数,如下所示:
LayoutParams.WRAP_CONTENT
然后更改保证金:
LinearLayout.LayoutParams params =
( LinearLayout.LayoutParams) img.getLayoutParams();
尝试并通知它是否有帮助。如果没有,那么我们可以进一步讨论