ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
[TOC] # 1. 前言 Matrix是Android提供的一个矩阵工具类,可以结合其余API来进行控制图像、组件的变换。使用Matrix可以很轻松的完成平移、缩放、旋转、倾斜功能。使用步骤如下: * 得到Matrix对象; * 调用平移、翻转、缩放、倾斜等方法; * 应用到指定的图形或者控件; ## 1.1 对应方法 ### 1.1.1 平移 ~~~java // dx,dy为平移距离 void setTranslate(float dx, float dy); ~~~ ### 1.1.2 倾斜 ~~~java // kx,ky为倾斜距离 void setSkew(float kx, float ky); // px,py为轴心 void setSkew(float kx, float ky, float px, float py); ~~~ ### 1.1.3 旋转 ~~~java // 角度 void setRotate(float degrees); // px,py为轴心 void setRotate(float degrees, float px, float py); ~~~ ### 1.1.4 缩放 ~~~java // 缩放比例 void setScale(float sx, float sy); // px,py为轴心 void setScale(float sx, float sy, float px, float py); ~~~ ## 1.2 应用 这里以缩放为例: ~~~ // 得到资源文件的Bitmap对象 mContentBitmap = BitmapFactory.decodeResource(resources, R.drawable.b) // 应用matrix变换 myMatrix= Matrix() val scale = 300f / mContentBitmap.width // 缩放倍率,圆形坐标 myMatrix.setScale(scale, scale, 200f, 200f) // 根据原始图片和Matrix创建新的图片 tempBitmap = Bitmap.createBitmap(mContentBitmap, 0, 0, mContentBitmap.width, mContentBitmap.height, myMatrix, true) ~~~ 然后在onDraw函数中进行绘制显示: ~~~ // 绘制新的图片 canvas?.drawBitmap(tempBitmap, myMatrix, mPaint) ~~~