安卓开发中的手势操作监听1双击2.滑动关闭Activity 3.放大缩小图片等手势操作,
来源:互联网 发布:中国陶瓷出口数据 编辑:程序博客网 时间:2024/06/11 16:07
安卓开发中加入一些手势操作会给用户使用可以带来更多方便,
所以有的界面加入手势操作,会是很不错的做法哦
我就提供以下我自己做的手势监听,都是在官方的API基础上加以处理
有双击手势,右滑关闭Activity,放大缩小图片,等主要操作
直接提供以下代码吧 大家参考一下吧
/** * hbm * 提供以下的手势监听,当然其他方法也可以实现 * 手势监听特色包括1.双击 2.手势滑动(启动距离->到结束距离) 3.放大缩小 */public class MainActivity extends AppCompatActivity { //提示 private TextView mTvHint; //双击显示图片 private ImageView mIvGood, mIvLama; //双击, 滑动关闭 手势监听 private GestureDetector mDetector; //缩放因数 private float mFactor; //放大图片手势 private ScaleGestureDetector mScale; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); setListener(); } private void setListener() { //手势监听 mDetector = new GestureDetector(this, new GestureListener(mTvHint, mIvGood, this)); //放大图片手势 mScale = new ScaleGestureDetector(this, new ScaleListener()); } @Override public boolean onTouchEvent(MotionEvent event) { return mDetector.onTouchEvent(event) || mScale.onTouchEvent(event); } private void initView() { mTvHint = (TextView) findViewById(R.id.tvHint); mIvGood = (ImageView) findViewById(R.id.ivGood); mIvLama = (ImageView) findViewById(R.id.ivLama); } //手势监听 class GestureListener extends GestureDetector.SimpleOnGestureListener { //提示 private TextView mTvHint; //双击显示图片 private ImageView mIvGood; private Context mContext; public GestureListener(TextView tvHint, ImageView ivGood, Context context) { this.mTvHint = tvHint; this.mIvGood = ivGood; this.mContext = context; } @Override public boolean onDoubleTap(MotionEvent e) { Log.i("main", "手势的双击事件"); mIvGood.setVisibility(View.VISIBLE); mIvGood.setImageResource(R.drawable.apk3); mTvHint.setText("双击监听"); new Handler().postDelayed(new Runnable() { @Override public void run() { mIvGood.setVisibility(View.GONE); } }, 500); return super.onDoubleTap(e); } @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { Log.i("main", "e1=" + e1.getX() + "e2=" + e2.getY() + "velocityX速度=" + velocityX + "velocityY=" + velocityY); //触摸起点坐标 结束坐标 if (e1.getX() < (e2.getX() - 200) || velocityX > 1000) { Toast.makeText(mContext, "这个滑动事件是关闭页面手势", Toast.LENGTH_LONG).show(); ((MainActivity) mContext).finish(); } return false; } @Override public void onLongPress(MotionEvent e) { Log.i("main", "手势的按下未松开、未移动的事件"); mTvHint.setText("手势的按下未松开、未移动的事件"); super.onLongPress(e); } @Override public boolean onDown(MotionEvent e) { Log.i("main", "手势的按下事件"); return super.onDown(e); } @Override public boolean onSingleTapUp(MotionEvent e) { Log.i("main", "手势的单击事件"); return super.onSingleTapUp(e); } @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { Log.i("main", "手势的滚动事件"); return super.onScroll(e1, e2, distanceX, distanceY); } } //图片放大手势监听 class ScaleListener extends ScaleGestureDetector.SimpleOnScaleGestureListener { @Override public boolean onScale(ScaleGestureDetector detector) { mFactor *= detector.getScaleFactor(); //0.2-4 mFactor = Math.min(4, Math.max(mFactor, 0.3f)); ViewPropertyAnimator animate = mIvLama.animate(); animate.scaleX(mFactor) .scaleY(mFactor) .setDuration(300) .start(); return super.onScale(detector); } }}
0 0
- 安卓开发中的手势操作监听1双击2.滑动关闭Activity 3.放大缩小图片等手势操作,
- 基于webview的安卓app图片支持手势缩放,双击放大,缩小
- 图片浏览,手势放大缩小
- 自定义ImageView实现图片手势滑动、放大缩小效果
- 安卓自定义画布 图片,文字相结合成图片 手势放大缩小,文字颜色大小自定义
- Iwfu-安卓Gesture手势(2)-实现多点触控控制图片的放大缩小。
- iOS不通过手势 实现 放大 缩小视图操作
- 对这个svg手势操作(放大,缩小)
- android手势操作&&实现滑动切换activity
- Android相册支持查看本地相册,点击放大图片,滑动切换图片,手势放大缩小
- 手势放大缩小的ImageView,双击放大、还原
- activity 监听手势滑动 上下左右
- ios 根据手势放大或缩小图片
- ios 根据手势放大或缩小图片
- ios 根据手势放大或缩小图片
- ios 根据手势放大或缩小图片
- android Matrix图片手势放大缩小,拖动
- 滑动手势操作
- Redis 单机/集群离线安装部署
- 嵌入式复习2
- 求n^k的前三位数和后三位数
- iOS开发网络篇之文件下载、大文件下载、断点下载
- 分布式数据库中的常见故障及常用解决方案
- 安卓开发中的手势操作监听1双击2.滑动关闭Activity 3.放大缩小图片等手势操作,
- jquery的dialog 动态调整按钮
- Java中的subString()方法
- 查询每个部门中薪资最高的员工
- LeetCode: First Unique Character in a String
- 【Android drawable】微技巧,你所不知道的drawable的那些细节
- 笔试基础归纳-8.23
- mui返回传参
- Light-oj 1282 - Leading and Trailing