博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高仿 WIN8系统 磁贴点击下沉倾斜效果源码
阅读量:6241 次
发布时间:2019-06-22

本文共 1476 字,大约阅读时间需要 4 分钟。

hot3.png

  demo中的图片皆来自 ‘冷笑话精选’,应用链接 冷笑话精选2.1版本。新UI。新体验。大家瞧瞧

  效果描述:点击图片中央区域下沉,放手回到原来的位置。点击旁边区域图片绕对应轴倾斜。

  效果图():

  豌豆荚截屏(1).png

  豌豆荚截屏.png

\

  原理:重写ImageView,捕捉onTouchEvent事件进行Bitmap的处理
  缩放处理:
  

  private synchronized void BeginScale(Matrix matrix, float scale) {  int scaleX = (int) (vWidth * 0.5f);  int scaleY = (int) (vHeight * 0.5f);  matrix.postScale(scale, scale, scaleX, scaleY);  setImageMatrix(matrix);  }  
  绕轴旋转处理:   
  private synchronized void BeginRolate(Matrix matrix, float rolateX,  float rolateY) {  // Bitmap bm = getImageBitmap();  int scaleX = (int) (vWidth * 0.5f);  int scaleY = (int) (vHeight * 0.5f);  camera.save();  camera.rotateX(RolateY > 0 ? rolateY : -rolateY);  camera.rotateY(RolateX < 0 ? rolateX : -rolateX);  camera.getMatrix(matrix);  camera.restore();  // 控制中心点  if (RolateX > 0 && rolateX != 0) {  matrix.preTranslate(-vWidth, -scaleY);  matrix.postTranslate(vWidth, scaleY);  } else if (RolateY > 0 && rolateY != 0) {  matrix.preTranslate(-scaleX, -vHeight);  matrix.postTranslate(scaleX, vHeight);  } else if (RolateX < 0 && rolateX != 0) {  matrix.preTranslate(-0, -scaleY);  matrix.postTranslate(0, scaleY);  } else if (RolateY < 0 && rolateY != 0) {  matrix.preTranslate(-scaleX, -0);  matrix.postTranslate(scaleX, 0);  }  setImageMatrix(matrix);  }  
  其中:matrix.preTranslate(-vWidth, -scaleY);matrix.postTranslate(vWidth, scaleY);为确定绕轴中心点位置,很重要。

转载:http://www.adobex.com/android/source/details/00000214.htm

转载于:https://my.oschina.net/androidcode/blog/104139

你可能感兴趣的文章
分享一次失败的项目实践经验
查看>>
jedispool 连 redis
查看>>
PadLeft 补零
查看>>
注意了,99%通过天天特价的技巧!
查看>>
iOS H5容器的一些探究(一):UIWebView和WKWebView的比较和选择
查看>>
activity启动模式
查看>>
如何将页面设置为微信端才能打开
查看>>
centos7如何关闭防火墙
查看>>
iOS开发中你是否遇到这些经验问题
查看>>
cellery ImportError & AttributeError
查看>>
正则表达式
查看>>
算法实验题 5.1 湖泊
查看>>
【235】Win10-Chrome 临时视频文件夹
查看>>
MongoDB GridFS——本质上是将一个文件分割为大小为256KB的chunks 每个chunk里会放md5标识 取文件的时候会将这些chunks合并为一个整体返回...
查看>>
Spring泛型依赖注入
查看>>
加速scp传输速度
查看>>
Kali Linux 安全渗透教程&lt;第三更&gt;1.2 安全渗透所需工具
查看>>
ios 使用Safari浏览器跳转打开、唤醒app
查看>>
HDU 1520 Anniversary party(DFS或树形DP)
查看>>
Linux 安装Nginx具体图解教程
查看>>