1.初始化:
private TestMatrixImageView mTestMatrixImageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mTestMatrixImageView=new TestMatrixImageView(MainActivity.this); mTestMatrixImageView.setScaleType(ImageView.ScaleType.MATRIX);//?? mTestMatrixImageView.setOnTouchListener(new TouchListenerImpl()); setContentView(mTestMatrixImageView); }
a.平移:
private void testTranslate(){ Matrix matrix=new Matrix(); int width=mTestMatrixImageView.getBitmap().getWidth(); int height=mTestMatrixImageView.getBitmap().getHeight(); matrix.postTranslate(width, height); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
b.围绕图片中心点旋转:
private void testRotate(){ Matrix matrix=new Matrix(); int width=mTestMatrixImageView.getBitmap().getWidth(); int height=mTestMatrixImageView.getBitmap().getHeight(); matrix.postRotate(45f, width/2, height/2); matrix.postTranslate(width, height); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
c.缩放:
private void testScale() { Matrix matrix = new Matrix(); matrix.setScale(0.5f, 0.5f); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
d.水平倾斜:
private void testSkewX() { Matrix matrix = new Matrix(); matrix.setSkew(0.5f, 0); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
e.垂直倾斜:
private void testSkewY() { Matrix matrix = new Matrix(); matrix.setSkew(0, 0.5f); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
f. 水平且垂直倾斜:
private void testSkewXY() { Matrix matrix = new Matrix(); matrix.setSkew(0.5f, 0.5f); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
g.水平对称--图片关于X轴对称
private void testSymmetryX() { Matrix matrix = new Matrix(); int height = mTestMatrixImageView.getBitmap().getHeight(); float matrixValues[] = { 1f, 0f, 0f, 0f, -1f, 0f, 0f, 0f, 1f }; matrix.setValues(matrixValues); //若是matrix.postTranslate(0, height); //表示将图片上下倒置 matrix.postTranslate(0, height*2); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
h.垂直对称--图片关于Y轴对称:
private void testSymmetryY() { Matrix matrix = new Matrix(); int width=mTestMatrixImageView.getBitmap().getWidth(); float matrixValues[] = {-1f, 0f, 0f, 0f, 1f, 0f, 0f, 0f, 1f}; matrix.setValues(matrixValues); //若是matrix.postTranslate(width,0); //表示将图片左右倒置 matrix.postTranslate(width*2, 0); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
j.关于X=Y对称--图片关于X=Y轴对称:
private void testSymmetryXY() { Matrix matrix = new Matrix(); int width = mTestMatrixImageView.getBitmap().getWidth(); int height = mTestMatrixImageView.getBitmap().getHeight(); float matrixValues[] = { 0f, -1f, 0f, -1f, 0f, 0f, 0f, 0f, 1f }; matrix.setValues(matrixValues); matrix.postTranslate(width+height, width+height); mTestMatrixImageView.setImageMatrix(matrix); showMatrixEveryValue(matrix); }
testMatrixImageView.java:
public class TestMatrixImageView extends ImageView{ private Matrix mMatrix; private Bitmap mBitmap; public TestMatrixImageView(Context context) { super(context); mMatrix=new Matrix(); mBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.icon); } @Override protected void onDraw(Canvas canvas) { System.out.println("---> onDraw"); //画原图 canvas.drawBitmap(mBitmap, 0, 0, null); //画经过Matrix变化后的图 canvas.drawBitmap(mBitmap, mMatrix, null); super.onDraw(canvas); } @Override public void setImageMatrix(Matrix matrix) { System.out.println("---> setImageMatrix"); this.mMatrix.set(matrix); super.setImageMatrix(matrix); } public Bitmap getBitmap(){ System.out.println("---> getBitmap"); return mBitmap; } }
相关推荐
图片旋转缩放触控
android图片缩放双击旋转效果 支持图片拖动,双击缩放,旋转,展示
android图片预览缩放
一个Android图片缩放查看控件,支持手势
本项目是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不存在了,请在代码中修改图片路径...
本项目是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不存在了,请在代码中修改图片路径...
Android 图片双指缩放 单指拖拽 单指移动图片到边界回弹
这个例子主要是针对android 图片手势缩放的,包括了不同形式的手势缩放,如果有需要赶快下载看看吧!
android ImageView控件缩放和旋转图片源码.rar
android 图片 旋转 平移 缩放,生成无锯齿图片
一个简单的demo。使用android中的matrix属性,实现图片的放大、缩小、以及左旋转、右旋转。
Android实现图片手势缩放、移动、双击放大缩小。
Android图片编辑demo(包含图片的裁剪、旋转、缩放)。
Android GridView 点击缩放图像
android 图片拼接 缩放 特效 拖动 翻转
Android图片的旋转 缩放 剪切 存储
android imageview 图片缩放 图片缩放、移动+异步加载+Activity半透明
易语言图片旋转缩放源码,图片旋转缩放,刷新画板,鼠标左键按下,鼠标左键放开,鼠标双击,取像素边长,图片到缓冲数据,鼠标右键放开,改变尺寸,是画分形图模式,时钟周期事件,取完成度,求迭代次数,着色,鼠标位置被移动,图片...
图片旋转缩放加盖水印透明倾斜扭曲处理是一个图片处理的综合例子源码,实现了图片的旋转,缩放,加盖水印,透明,倾斜,扭曲用到的图片是使用httpclient 实现在线图片的下载展示,并实现图片处理。如果,网络图片不...
android多点触控缩放移动旋转等手势,灵敏度高,有源代码,跟大家共同交流学习。