在LayoutParams Change之后,ImageView消失

时间:2013-05-28 00:17:02

标签: java android imageview coordinates ontouchevent

我以编程方式在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消失了。

任何猜测?

1 个答案:

答案 0 :(得分:2)

我假设您确保在onTouch()中获得newX, newY个值。 我觉得您的目标是编辑布局参数,但不是这样做,而是指定一个参数集,其宽度和高度为{ {1}}然后设置边距。

您可能会尝试首先获取现有参数,如下所示:

LayoutParams.WRAP_CONTENT

然后更改保证金:

LinearLayout.LayoutParams params =
 ( LinearLayout.LayoutParams) img.getLayoutParams();

尝试并通知它是否有帮助。如果没有,那么我们可以进一步讨论