博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用android Matrix来处理简单图片
阅读量:5161 次
发布时间:2019-06-13

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

精彩源码:

AChartEngine的简单使用:柱状图、饼状图、折线图

第三方集成之新浪微薄

第三方集成之人人客户端

Matrix是由一个3×3的矩阵组成的,因为涉及到数学中的矩阵概念先不做解释。Matrix已经给我们封装好了一些方法,这里先看看每个方法的效果。

  程序目录如下:

main.xml展示变换前后的图片:

MainActivity负责利用Matrix处理图片,首先演示图片旋转效果,主要代码:

public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.main);     ImageView imageView;     Matrix mMatrix = new Matrix();     imageView = (ImageView) findViewById(R.id.myimage);     Bitmap bmp = ((BitmapDrawable) getResources().getDrawable(             R.drawable.picture1)).getBitmap();        mMatrix.setRotate(60);     Bitmap bm = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(),bmp.getHeight(), mMatrix, true);     imageView.setImageBitmap(bm); }

注意:Matrix的操作,总共分为translate(平移),rotate(旋转),scale(缩放)和skew(倾斜)四种,每一种变换在

  Android的API里都提供了set, post和pre三种操作方式,除了translate,其他三种操作都可以指定中心点。
  set是直接设置Matrix的值,每次set一次,整个Matrix的数组都会变掉。
  post是后乘,当前的矩阵乘以参数给出的矩阵。可以连续多次使用post,来完成所需的整个变换。
  例如,要将一个图片旋转30度,然后平移到(100,100)的地方,那么可以这样做:

Matrix m = new Matrix();  m.postRotate(30);  m.postTranslate(100, 100);

将图片旋转60度:

图片倾斜:mMatrix.postSkew(0.3f, 0.7f);效果:

图片缩放,x轴缩小0.5倍,y轴扩大2.5倍:mMatrix.setScale(0.5f, 2.5f);效果:

 

 

 

转载于:https://www.cnblogs.com/vus520/archive/2012/07/31/2616573.html

你可能感兴趣的文章
spring IOC装配Bean(注解方式)
查看>>
处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“Manag
查看>>
利用SignalR来同步更新Winfrom
查看>>
反射机制
查看>>
CocoaPod
查看>>
BZOJ 1251: 序列终结者 [splay]
查看>>
5G边缘网络虚拟化的利器:vCPE和SD-WAN
查看>>
MATLAB基础入门笔记
查看>>
【UVA】434-Matty's Blocks
查看>>
Android开发技术周报 Issue#80
查看>>
hadoop2.2.0+hive-0.10.0完全分布式安装方法
查看>>
django知识点总结
查看>>
C++ STL stack、queue和vector的使用
查看>>
使用Reporting Services时遇到的小问题
查看>>
约瑟夫问题
查看>>
Arduino 报错总结
查看>>
树莓派Android Things物联网开发:树莓派GPIO引脚图
查看>>
矩阵快速幂---BestCoder Round#8 1002
查看>>
如何将应用完美迁移至Android P版本
查看>>
【转】清空mysql一个库中的所有表的数据
查看>>