如何使按钮每秒在布局中随机移动

Posted

技术标签:

【中文标题】如何使按钮每秒在布局中随机移动【英文标题】:How to make a Button randomly Move in a Layout every second 【发布时间】:2015-11-26 21:59:37 【问题描述】:

好的,在这里我有这样的xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:ads="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    android:layout_
    android:layout_ >

     <RelativeLayout
         android:layout_
         android:layout_
         android:layout_centerHorizontal="true"
         android:layout_centerVertical="true"
         android:layout_margin="30dp"
         android:background="@drawable/backgroundblankred" >

         <Button
             android:id="@+id/button1"
             android:layout_
             android:layout_
             android:background="@drawable/eeclevelfirstblackbuton" />

     </RelativeLayout>

</RelativeLayout>

原来是这样的

按钮在布局内,所以我想让按钮在单击时变成这样

按钮每秒随机在布局内移动,而不是从布局中移出,这会使应用程序强制关闭

第二个问题,如何设置随机按钮移动的快慢?比如设置按钮每2秒随机移动一次并增加更快,是否可以设置按钮移动更快?

我现在只有这个代码

public class tested extends Activity 

Button buttonblack;
int score=0;



@Override
protected void onCreate(Bundle savedInstanceState) 
    super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
    WindowManager.LayoutParams.FLAG_FULLSCREEN);
    setContentView(R.layout.tested);


    buttonblack = (Button)findViewById(R.id.black1);
    buttonblack.setOnClickListener(new View.OnClickListener() 

              public void onClick(View v)
             //If clicked, Move the button randomly
                                                         
            );

任何人都可以帮助一些代码?提前致谢。

【问题讨论】:

How to make a Button randomly Move 的可能副本 techrepublic.com/blog/software-engineer/… 【参考方案1】:

希望此视频对第一部分有所帮助:Android App Development for Beginners - 34 - Animations and Transitions。

对于第二部分,您可以使用这样的循环:

while(true)
    delay(time);//time can be taken input from any EditText.
    placeButton(x,y); // x and y are random numbers

【讨论】:

好的视频真的很有帮助,但是如果让按钮每秒随机一次,有可能吗?取自 EditText?【参考方案2】:

在您的视图区域内生成随机整数 random number

1)这应该是你要找的伪代码

int x = rnd(view.getX(), view.getX()+view.getWidth());
int y = rnd(view.getY(), view.getY()+view.getHeight());
view.setTranslationX(x);
view.setTranslationY(y);

2) 使用可以修改睡眠持续时间的线程,需要在主线程上调用 UI 更改,为此使用处理程序或异步任务

【讨论】:

以上是关于如何使按钮每秒在布局中随机移动的主要内容,如果未能解决你的问题,请参考以下文章

VBA - 如何使随机化字符串数组工作?

悬停时随机移动按钮:Javascript [重复]

如何添加或Java中的数组中删除一个随机数?

如何在布局中随机放置小部件

vb随机移动鼠标

精灵在随机位置移动一次