首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

android 挪动的button按钮

2012-09-03 
android 移动的button按钮package cn.yue.testimport android.app.Activityimport android.os.Bundleim

android 移动的button按钮

package cn.yue.test;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnTouchListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;

@SuppressWarnings("deprecation")
public class MoveButtonActivity extends Activity {
?private int xSpan;// x轴坐标
?private int ySpan;// y轴坐标
?final static int X_MODIFY = 2;
?final static int Y_MODIFY = 52;
?private Button button;

?@Override
?public void onCreate(Bundle savedInstanceState) {
??super.onCreate(savedInstanceState);
??setContentView(R.layout.main);

??button = (Button) this.findViewById(R.id.btn_move);
??// 添加监听
??button.setOnTouchListener(new OnTouchListener() {

???@Override
???public boolean onTouch(View v, MotionEvent event) {
????switch (event.getAction()) {
????// 按下取得x,y坐标
????case MotionEvent.ACTION_DOWN:
?????button.setText(event + "DOWN");
?????xSpan = (int) event.getX();
?????ySpan = (int) event.getY();
?????break;
????// 按钮跟焦点移动
????case MotionEvent.ACTION_MOVE:
?????Button btn = (Button) findViewById(R.id.btn_move);
?????ViewGroup.LayoutParams layParams = //
?????new AbsoluteLayout.LayoutParams(AbsoluteLayout.LayoutParams.WRAP_CONTENT, //
???????AbsoluteLayout.LayoutParams.WRAP_CONTENT, //
???????(int) event.getRawX() - xSpan - X_MODIFY, //
???????(int) event.getRawY() - xSpan - Y_MODIFY);
?????btn.setLayoutParams(layParams);
?????break;
?????//
????case MotionEvent.ACTION_UP:
?????button.setText(event + "UP");
?????break;
????}
????return true;
???}

??});

?}

?@Override
?public boolean onKeyDown(int keyCode, KeyEvent event) {
??Button btn = (Button) findViewById(R.id.btn_move);
??btn.setText(event + "DOWN");
??return true;
?}

?@Override
?public boolean onKeyUp(int keyCode, KeyEvent event) {
??Button btn = (Button) findViewById(R.id.btn_move);
??btn.setText(event + "UP");
??return true;
?}

?@Override
?public boolean onTouchEvent(MotionEvent event) {
??Button btn = (Button) findViewById(R.id.btn_move);
??ViewGroup.LayoutParams layParams = //
??new AbsoluteLayout.LayoutParams(AbsoluteLayout.LayoutParams.WRAP_CONTENT,//
????AbsoluteLayout.LayoutParams.WRAP_CONTENT,//
????(int) event.getRawX() - xSpan - X_MODIFY, //
????(int) event.getRawY() - ySpan - Y_MODIFY);
??btn.setLayoutParams(layParams);
??return true;
?}

}

热点排行