package com.example.qingyangdemo;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.TextView;
import com.example.qingyangdemo.R;
import com.example.qingyangdemo.base.AppManager;
import com.example.qingyangdemo.base.BaseActivity;
import com.example.qingyangdemo.common.UIHelper;
import com.example.qingyangdemo.net.URL;
import com.example.qingyangdemo.thread.MouseThread;
/**
* 控制pc端鼠标
*
* @author 赵庆洋
*
*/
public class ControlMouseActivity extends BaseActivity implements
OnTouchListener, OnClickListener {
private ImageButton returnBtn;
private TextView mouseControl;
private Button leftBtn;
private Button rightBtn;
// 初始值的x,y坐标
private float initX, initY;
// 移动后的x,y坐标
private float disX, disY;
// 抬起的x,y坐标
private float upX, upY;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.control_mouse_activity);
initView();
}
/**
* 初始化视图
*/
private void initView() {
returnBtn = (ImageButton) findViewById(R.id.mouse_return_btn);
returnBtn.setOnClickListener(UIHelper.finish(this));
mouseControl = (TextView) findViewById(R.id.mouse_control);
mouseControl.setOnTouchListener(this);
leftBtn = (Button) findViewById(R.id.mouse_left_btn);
rightBtn = (Button) findViewById(R.id.mouse_right_btn);
leftBtn.setOnClickListener(this);
rightBtn.setOnClickListener(this);
}
@Override
protected void onDestroy() {
AppManager.getAppManager().finishActivity(this);
super.onDestroy();
}
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
// 按下动作
case MotionEvent.ACTION_DOWN:
initX = event.getX();
initY = event.getY();
// 抬起记录按下的x,y
upX = event.getX();
upY = event.getY();
break;
// 移动动作
case MotionEvent.ACTION_MOVE:
disX = event.getX() - initX;
disY = event.getY() - initY;
// 如果移动了
if (disX != 0 || disY != 0) {
String msg = "<" + disX + "," + disY + ">";
new MouseThread(application, msg).start();
}
initX = event.getX();
initY = event.getY();
break;
// 抬起动作
case MotionEvent.ACTION_UP:
// 如果没有移动过
if ((event.getX() - upX) == 0 && (event.getY() - upY) == 0) {
new MouseThread(application, URL.MOUSE_LEFT).start();
}
break;
}
return true;
}
@Override
public void onClick(View v) {
switch (v.getId()) {
// 鼠标左键
case R.id.mouse_left_btn:
new MouseThread(application, URL.MOUSE_LEFT).start();
break;
// 鼠标右键
case R.id.mouse_right_btn:
new MouseThread(application, URL.MOUSE_RIGHT).start();
break;
}
}
}