请问:如何实现Button的位置移动
rt --------------------编程问答-------------------- 楼主要实现什么效果??? --------------------编程问答-------------------- 二个按钮并排 --------------------编程问答--------------------就是让按钮到一个随机的位置 --------------------编程问答-------------------- 放在一个横向布局的linearlayout里!!!! --------------------编程问答-------------------- 貌似有一个可以任意的布局。 --------------------编程问答-------------------- 可以用absolutlayout --------------------编程问答--------------------
有意思呵呵 --------------------编程问答-------------------- 楼主想实现什么功能啊?不明白啊。 --------------------编程问答-------------------- 这个可能帮到你
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