package com.oppo.examples;import android.app.Activity;import android.os.Bundle;import android.util.DisplayMetrics;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.widget.Button;public class DraftTest extends Activity {/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);DisplayMetrics dm = getResources().getDisplayMetrics();final int screenWidth = dm.widthPixels;final int screenHeight = dm.heightPixels - 50;final Button b=(Button)findViewById(R.id.btn);b.setOnTouchListener(new OnTouchListener(){int lastX, lastY;@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubint ea=event.getAction();Log.i("TAG", "Touch:"+ea);//Toast.makeText(DraftTest.this, "位置:"+x+","+y, Toast.LENGTH_SHORT).show();switch(ea){case MotionEvent.ACTION_DOWN:lastX = (int) event.getRawX();lastY = (int) event.getRawY();break;/** * layout(l,t,r,b) * l  Left position, relative to parent                     t  Top position, relative to parent                     r  Right position, relative to parent                     b  Bottom position, relative to parent   * */case MotionEvent.ACTION_MOVE:int dx =(int)event.getRawX() - lastX;int dy =(int)event.getRawY() - lastY;int left = v.getLeft() + dx;int top = v.getTop() + dy;int right = v.getRight() + dx;int bottom = v.getBottom() + dy;if(left < 0){left = 0;right = left + v.getWidth();}if(right > screenWidth){right = screenWidth;left = right - v.getWidth();}if(top < 0){top = 0;bottom = top + v.getHeight();}if(bottom > screenHeight){bottom = screenHeight;top = bottom - v.getHeight();}v.layout(left, top, right, bottom);Log.i("", "position:" + left +", " + top + ", " + right + ", " + bottom);   lastX = (int) event.getRawX();lastY = (int) event.getRawY();break;case MotionEvent.ACTION_UP:break;        }return false;}});}}

更多相关文章

  1. 极客学院视频源码资料
  2. android 数据库更改数据库位置【DbFlow示范】
  3. Android通过PopupMenu定义弹出菜单的位置
  4. Build android source code 2 -- 下载源码
  5. android地图获取当前位置,气泡标志,点击气泡跳转到另一个界面
  6. android cupcake源码编译问题
  7. Android 获取地理位置的经度和纬度(zz)
  8. [置顶] Android——4.2.2 源码目录结构分析

随机推荐

  1. Android 之 网络访问服务器,解析JSON数据
  2. Android移动开发 打包 apk
  3. Bugly Android 这个错误 Cleartext HTTP
  4. SmallActivity创建
  5. tabhost放到底部显示
  6. android 常用资料
  7. Android线性布局(Linear Layout)
  8. Android定制--------自定义关机时间
  9. Android 8.0 Caused by: java.lang.Illeg
  10. Java vs Kotlin,Android开发人员应该选择