当前位置:编程学习 > wap >>

请问:如何实现Button的位置移动

rt --------------------编程问答-------------------- 楼主要实现什么效果??? --------------------编程问答-------------------- 二个按钮并排 --------------------编程问答--------------------
引用 1 楼 aihuaqiong 的回复:
楼主要实现什么效果???

就是让按钮到一个随机的位置 --------------------编程问答-------------------- 放在一个横向布局的linearlayout里!!!! --------------------编程问答-------------------- 貌似有一个可以任意的布局。 --------------------编程问答-------------------- 可以用absolutlayout --------------------编程问答--------------------
引用 2 楼 widesea1 的回复:
二个按钮并排



有意思呵呵 --------------------编程问答-------------------- 楼主想实现什么功能啊?不明白啊。 --------------------编程问答-------------------- 这个可能帮到你

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;

public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Button btn;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn = (Button) findViewById(R.id.btnHello);
btn.setOnTouchListener(new OnTouchListener() {
int[] temp = new int[] { 0, 0 };

public boolean onTouch(View v, MotionEvent event) {

int eventaction = event.getAction();
Log.i("&&&", "onTouchEvent:" + eventaction);

int x = (int) event.getRawX();
int y = (int) event.getRawY();

switch (eventaction) {

case MotionEvent.ACTION_DOWN: // touch down so check if the
temp[0] = (int) event.getX();
temp[1] = y - v.getTop();
break;

case MotionEvent.ACTION_MOVE: // touch drag with the ball
v.layout(x - temp[0], y - temp[1], x + v.getWidth()
- temp[0], y - temp[1] + v.getHeight());
v.postInvalidate();
break;

case MotionEvent.ACTION_UP:
break;
}
return false;
}
});

}
} --------------------编程问答-------------------- 在我机上运行成功了,你可以参考下

需要说明的是   The type AbsoluteLayout.LayoutParams is deprecated



Button bnt = (Button)findViewById(R.id.button_moves);
bnt.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {

//重新设置按钮位置
Button bnts = (Button)findViewById(R.id.button_moves);

AbsoluteLayout.LayoutParams vg = (AbsoluteLayout.LayoutParams)bnts.getLayoutParams();
vg.x = getRandom();
vg.y = getRandom();
bnts.setLayoutParams(vg);
}

});

/**
 * 得到一个随机数
 * 
 * @return
 * @author BK_DeathKninght
 * @date 2011-6-30
 */
private int getRandom() {
int Temp = (int)Math.round(Math.random()*124+4);
return Temp;
}

--------------------编程问答--------------------
我实现的是一个按钮在被按下后 移动 位置。

位置的设置可以自行决定,我使用的是随机函数产生的4-128之间的随机数。 --------------------编程问答-------------------- 想任意指定控件坐标就用ViewGroup,系统定义的布局不好用。
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,