下面是一个Android拖拽功能的实现demo,以图片ImageView测试,当手指拖动图片时,图片会跟着手指的移动而移动

package com.example.dragtest;import android.app.Activity;import android.graphics.Rect;import android.os.Bundle;import android.util.Log;import android.view.MotionEvent;import android.view.View;import android.view.View.OnTouchListener;import android.view.Window;import android.widget.ImageView;public class MainActivity extends Activity {private ImageView imageView;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                imageView = (ImageView) findViewById(R.id.imageview);        imageView.setOnTouchListener(new OnTouchListener() {        float raw_x, raw_y;public boolean onTouch(View v, MotionEvent event) {int action = event.getAction();switch(action){case MotionEvent.ACTION_MOVE://获取手指触摸的点在屏幕中的坐标raw_x = event.getRawX();raw_y = event.getRawY();//计算图片显示的上下左右坐标int l = (int) (raw_x - imageView.getWidth()/2);int t = (int) (raw_y - imageView.getHeight()/2);int r = (int) (raw_x + imageView.getWidth()/2);int b = (int) (raw_y + imageView.getHeight()/2);//计算状态栏和标题栏高度int statusbarHeight = getStatusBarHeight();int titleBarHeight = getTitleBarHeight();//显示图片时要减去状态栏和标题栏的高度int h = statusbarHeight + titleBarHeight;//显示图片到制定位置v.layout(l, t - h, r, b - h);break;}return true;}});    }        //获取标题栏高度    private int getTitleBarHeight(){    int contentTop = getWindow().findViewById(Window.ID_ANDROID_CONTENT).getTop();    Log.d("yubo", "title bar height:" + (contentTop - getStatusBarHeight()));    return contentTop - getStatusBarHeight();    }        //获取状态栏高度    private int getStatusBarHeight(){    Rect rect = new Rect();    getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);    Log.d("yubo", "status bar height:" + rect.top);    return rect.top;    }}
效果图如下:



更多相关文章

  1. tess_two Android图片文字识别
  2. 图片的使用
  3. android中图片加载到内存的实例代码
  4. Android(安卓)把图片进行压缩
  5. Android处理图片透明度并绘画图片
  6. android沉浸式全屏显示
  7. android 样式选择器
  8. SmartImageView初接触
  9. Android——网络编程(网络图片查看器)

随机推荐

  1. android 通过wifi调用打印机
  2. Android中动态改变控件的大小的一种方法
  3. Android(安卓)Resource介绍和使用(一)
  4. Android的消息机制Handler
  5. Android重难点解析——面试中可能被问到
  6. Android自学笔记:分析onXXX事件监听器中的
  7. Android(安卓)ButterKnife入门到放弃
  8. React-Native之Android(6.0及以上)权限申
  9. Android(安卓)DPAD not enabled in AVD
  10. android的wake_lock介绍