android中实现图片绕X轴、Y轴、Z轴翻转可以使用matrix和camera,类似3D效果

具体参见代码:

[java] view plain copy print ?
  1. publicclassFlipImgEffectViewextendsView{
  2. privateContextcontext;
  3. privateBitmapshowBmp;
  4. privateMatrixmatrix;//作用矩阵
  5. privateCameracamera;
  6. privateintdeltaX,deltaY;//翻转角度差值
  7. privateintcenterX,centerY;//图片中心点
  8. publicFlipImgEffectView(Contextcontext){
  9. super(context);
  10. this.context=context;
  11. initData();
  12. }
  13. privatevoidinitData(){
  14. showBmp=BitmapFactory.decodeResource(context.getResources(),R.drawable.flower);
  15. centerX=showBmp.getWidth()/2;
  16. centerY=showBmp.getHeight()/2;
  17. matrix=newMatrix();
  18. camera=newCamera();
  19. }
  20. intlastMouseX;
  21. intlastMouseY;
  22. @Override
  23. publicbooleandispatchTouchEvent(MotionEventevent){
  24. intx=(int)event.getX();
  25. inty=(int)event.getY();
  26. switch(event.getAction()){
  27. caseMotionEvent.ACTION_DOWN:
  28. lastMouseX=x;
  29. lastMouseY=y;
  30. break;
  31. caseMotionEvent.ACTION_MOVE:
  32. intdx=x-lastMouseX;
  33. intdy=y-lastMouseY;
  34. deltaX+=dx;
  35. deltaY+=dy;
  36. break;
  37. }
  38. invalidate();
  39. returntrue;
  40. }
  41. @Override
  42. protectedvoidonDraw(Canvascanvas){
  43. camera.save();
  44. //绕X轴翻转
  45. camera.rotateX(-deltaY);
  46. //绕Y轴翻转
  47. camera.rotateY(deltaX);
  48. //设置camera作用矩阵
  49. camera.getMatrix(matrix);
  50. camera.restore();
  51. //设置翻转中心点
  52. matrix.preTranslate(-this.centerX,-this.centerY);
  53. matrix.postTranslate(this.centerX,this.centerY);
  54. canvas.drawBitmap(showBmp,matrix,null);
  55. }
  56. }

更多相关文章

  1. 利用OpenGL ES、手机传感器、相机和调用百度语音包服务,实现AR+语
  2. Android(安卓)手机翻转实现技术
  3. Android实现随机圆形云标签效果
  4. OpenGL ES2.0实现手指滑动平移、双指缩放Android
  5. Android实现镜花水月的效果
  6. 关于Android(安卓)traslateAnimation的坐标系
  7. Android(安卓)背景颜色处理[使用 Drawable.setColorFilter(),或
  8. Android(安卓)多点触摸接口
  9. android opengles 实现翻牌效果

随机推荐

  1. android init 进程分析
  2. Android(安卓)源码下载
  3. android EditText 添加图片表情以及在四
  4. Android环境SDK搭建问题
  5. Android简易计算器(破烂Alpha版,后续更新)
  6. 在低版本Android上使用Material Design
  7. Android中的动画研究(二)
  8. Android_RadioGroup实现Tab
  9. Android传感器使用实例1
  10. Android九宫格解锁的实现