Android控件拖拽功能的实现
2014-10-17 11:46
483 查看
下面是一个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; } }效果图如下:
相关文章推荐
- 【Android 开发】:UI控件之 ImageView 实现图片旋转和缩放功能
- MFC单个控件实现文件拖拽功能
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- Android动态加载XML文件及控件来简单实现QQ好友印象的功能
- Android通过手势实现图像拖拽功能
- Android:利用Matrix,实现双手指缩放图片与拖拽图片功能
- duilib中控件拖拽功能的实现方法(附源码)
- MFC中实现单个控件接收拖拽文件的功能
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- 通过继承实现edit控件的拖拽文件功能扩展的一般步骤
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- android拖拽功能的实现原理
- TreeView控件中实现拖拽的功能
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- Android自定义View实现图片显示,并实现缩放、拖拽、切换功能
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- Android实现图片滚动控件,含页签功能,让你的应用像淘宝一样炫起来
- 【转】c# winform TreeView控件中实现拖拽的功能