如何使Button随机每秒移动一次

时间:2015-09-01 15:25:39

标签: java android button random

好的,所以在这里我有这样的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_width="match_parent"
    android:layout_height="match_parent" >

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

         <Button
             android:id="@+id/button1"
             android:layout_width="100dp"
             android:layout_height="100dp"
             android:background="@drawable/eeclevelfirstblackbuton" />

     </RelativeLayout>

</RelativeLayout>

就像这样显示

enter image description here

按钮位于布局内部,所以我想在点击时按下按钮就像这样

enter image description here

按钮每秒在布局内随机移动,而不是从可以强制关闭的布局中移出

第二个问题 ,如何设置随机按钮的快速移动?比如设置按钮随机移动每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
                                         }                
            });

任何人都可以提供一些代码帮助吗?在此先感谢。

2 个答案:

答案 0 :(得分:2)

希望此视频有助于第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
}

答案 1 :(得分:0)

在视图区域内生成随机整数 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更改,使用处理程序或asynctask