Android 图片三维翻转的效果
2011-11-19 08:36
330 查看
package chroya.demo.rotate3d; import android.content.Context; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Camera; import android.graphics.Canvas; import android.graphics.Matrix; import android.graphics.Paint; import android.view.MotionEvent; import android.view.View; /** * 图片三维翻转 * @author chroya */ public class CubeView extends View { //摄像机 private Camera mCamera; //翻转用的图片 private Bitmap face; private Matrix mMatrix = new Matrix(); private Paint mPaint = new Paint(); private int mLastMotionX, mLastMotionY; //图片的中心点坐标 private int centerX, centerY; //转动的总距离,跟度数比例1:1 private int deltaX, deltaY; //图片宽度高度 private int bWidth, bHeight; public CubeView(Context context) { super(context); setWillNotDraw(false); mCamera = new Camera(); mPaint.setAntiAlias(true); face = BitmapFactory.decodeResource(getResources(), R.drawable.x); bWidth = face.getWidth(); bHeight = face.getHeight(); centerX = bWidth>>1; centerY = bHeight>>1; } /** * 转动 * @param degreeX * @param degreeY */ void rotate(int degreeX, int degreeY) { deltaX += degreeX; deltaY += degreeY; mCamera.save(); mCamera.rotateY(deltaX); mCamera.rotateX(-deltaY); mCamera.translate(0, 0, -centerX); mCamera.getMatrix(mMatrix); mCamera.restore(); //以图片的中心点为旋转中心,如果不加这两句,就是以(0,0)点为旋转中心
mMatrix.preTranslate(-centerX, -centerY); mMatrix.postTranslate(centerX, centerY); mCamera.save(); postInvalidate(); } @Override public boolean onTouchEvent(MotionEvent event) { int x = (int) event.getX(); int y = (int) event.getY(); switch(event.getAction()) { case MotionEvent.ACTION_DOWN: mLastMotionX = x; mLastMotionY = y; break; case MotionEvent.ACTION_MOVE: int dx = x - mLastMotionX; int dy = y - mLastMotionY; rotate(dx, dy); mLastMotionX = x; mLastMotionY = y; break; case MotionEvent.ACTION_UP: break; } return true; } @Override public void dispatchDraw(Canvas canvas) { super.dispatchDraw(canvas); canvas.drawBitmap(face, mMatrix, mPaint); } }
相关文章推荐
- android matrix camera处理图片绕X轴Y轴翻转(类似3D效果)
- Android matrix camera处理图片绕X轴Y轴翻转(类似3D效果)
- android多张图片翻转和倒影效果
- android matrix camera处理图片绕X轴Y轴翻转(类似3D效果)
- Android matrix camera处理图片绕X轴Y轴翻转(类似3D效果)
- android多张图片翻转和倒影效果
- Android实现局部图片滑动指引效果
- CSS3之图片3D翻转效果(网页效果--每日一更)
- Android学QQ空间相册浏览类型横向滑动效果显示多图片MyHorizontalScrollView
- Android模糊处理实现图片毛玻璃效果
- Android Gallary图片游览效果--透明的倒影,层叠的图片,渐变的颜色透明度
- 一个基于jQuery的图片翻转效果
- 剖析Android动画(图片闪烁、左右摇摆、上下晃动等效果)
- Android 自定义 HorizontalScrollView 打造再多图片(控件)也不怕 OOM 的横向滑动效果
- android 双击图片放大,再双击缩小效果 【安卓进化九】
- Android 强大的Picasso,自定义图片效果
- android 360度图片翻转、旋转动画等待框
- Android用GridView排列相册,实现微信选择图片效果
- Android实现 制作隐藏图片效果 "幻影坦克"
- Android视图背景及图片透明效果(用颜色表示)