android 拖动相似Iphone AssistiveTouch的快捷键按钮 - 代码共享

[代码] [Java]代码 	private void getVidGetById(){
		//滑动的监听工作
		btnClick.setOnTouchListener(new OnTouchListener(){
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				int ea=event.getAc http://www.fpfuzhou.com/linked/20130324.do tion();
				switch(ea){
				case MotionEvent.ACTION_DOWN:
					//实行此操作 初始化 X,Y
					lastX = (int) event.getRawX();
					lastY = (int) event.getRawY();
					break;
				case MotionEvent.ACTION_MOVE:
					//getRawX()和getRawY()获得的是相对屏幕的方位
					int pawX = (int)event.getRawX();
					int pawY = (int)event.getRawY();
					if(pawX != lastX || pawY != lastY){
						int dx = pawX - lastX;
						int dy = pawY - lastY;
						//得到结束的 上下 左右的坐标
						int left = v.getLeft()   dx;
						int top = v.getTop()   dy;
						int right = v.getRight()   dx;
						int bottom = v.getBottom()   dy;
						//不能超过左边
						if(left < INIT_NUM){
							left = INIT_NUM;
							right = left   v.getWidth();
						}
						//不能超过右边
						if(right > screenWidth){
							right = screenWidth;
							left = right - v.getWidth();
						}
						//束缚 最上的方位
						if(top < INIT_NUM){
							top = INIT_NUM;
							bottom = top   v.getHeight();
						}
						//束缚最下的方位
						if(bottom > screenHeight){
							bottom = screenHeight;
							top = bottom - v.getHeight();
						}
						//写入控件的方位
						v.layout(left, top, right, bottom);
						//从头获取控件的方位
						lastX = (int) event.getRawX();
						lastY = (int) event.getRawY();
						falg = true;
					}else{
						falg = false;
					}
				}
				return falg;
			}});
		
		//点击的工作
		btnClick.setOnClickListener(new OnClickListener() {
			
			@Override
			public void onClick(View v) {
				Toast.makeText(MainActivity.this, "你点着我了",Toast.LENGTH_SHORT).show();
			}
		});
	} http://www.fpnanchang.com/linked/20130324.do 
posted @ 2013-03-25 02:40  chinadiy197601  阅读(225)  评论(0编辑  收藏  举报