移动视图位置刷新

时间:2013-01-31 14:26:05

标签: android image position move

首先抱歉我的英语。我刚开始使用android

进行开发

我的问题是:

我在随机位置创建一个ImageView,每次触摸图像时,它都会改变它的位置。当您触摸时,您有一个概率(%)在另一个随机位置出现另一个图像。但我的问题是当第二张图像出现时,第一张图像会回到“创建位置”并且不能保持位置。

“炸弹”创建得很好,但是第一张图像又回到了创建的位置而不是它当下的位置。

感谢大家的帮助

我的测试代码示例:

public void start(View view) {
    width= 60;
    height= 60;
    layout = (RelativeLayout) findViewById(R.id.rellayout);
    widthLayout = layout.getWidth();
    heightLayout = layout.getHeight();
    r = new Random();
    x = r.nextInt(widthLayout - 60);
    y = r.nextInt(heightLayout - 60);

    imagen = new ImageView(this);
    imagen.setImageResource(R.drawable.led_circle_green);
    RelativeLayout.LayoutParams paramss = new RelativeLayout.LayoutParams(
            60, 60);
    paramss.leftMargin = x;
    paramss.topMargin = y;
    imagen.setAdjustViewBounds(true);
    layout.addView(imagen, paramss);

    Animation aparecer = AnimationUtils
            .loadAnimation(this, R.anim.aparecer);
    imagen.startAnimation(aparecer);

    imagen.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            // your code here
            push();
        }
    });


  public void push() {
    createBomb();
    move();
}

public void createBomb() {
    r = new Random();
    int proba = r.nextInt(100);

    if (proba < 50) {   
        x = r.nextInt(widthLayout - 60);
        y = r.nextInt(heightLayout - 60);

        bomb = new ImageView(this);
        bomb.setImageResource(R.drawable.bomb);

        RelativeLayout.LayoutParams paramss = new RelativeLayout.LayoutParams(
                60, 60);
        paramss.leftMargin = x;
        paramss.topMargin = y;
        bomb.setAdjustViewBounds(true);
        layout.addView(bomb, paramss);
    }
}

public void move() {
    r = new Random();
    int proba = r.nextInt(100);

        if (proba < 10) {

                ximg = r.nextInt(widthLayout - width);
                yimg = r.nextInt(heightLayout - height);


            imagen.layout(ximg, yimg, ximg + width, yimg + height);

        }

}

1 个答案:

答案 0 :(得分:0)

布局方法不会将持久性更改应用于视图状态。将新布局参数设置为图像视图,这将指定它的新位置(不要使用布局方法)。

当你添加新的ImageView2时,RelativeLayout决定重新传输其子节点并重置ImageView1的位置。

Read this.