首先抱歉我的英语。我刚开始使用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);
}
}
答案 0 :(得分:0)
布局方法不会将持久性更改应用于视图状态。将新布局参数设置为图像视图,这将指定它的新位置(不要使用布局方法)。
当你添加新的ImageView2时,RelativeLayout决定重新传输其子节点并重置ImageView1的位置。