android - 使用矩阵旋转位图

标签 android matrix bitmap rotation

使用矩阵旋转位图时,顶点不稳定..

  Matrix matrix = new Matrix();
    matrix.postRotate(mDegree,100,100);
    mCompasstemp = Bitmap.createBitmap(mCompPic, 0, 0, mCompPic.getWidth(), mCompPic.getHeight(), matrix, true);
    mCompassHud.setImageBitmap(mCompasstemp);

我的代码输出就像 - 位图将旋转。 - 我的位图顶点不稳定。 -位图正在调整大小

我需要禁用图像调整大小并使旋转稳定。您能为此提出解决方案吗?

最佳答案

与其直接从原始位图创建新位图,另一个(更直接,恕我直言)选项是创建结果位图,使用该位图创建 Canvas ,然后在 Canvas 上进行旋转/平移/缩放,然后通过 Canvas 将原始位图绘制到新位图上。

基本上,您正在查看:

  scaledImage = Bitmap.createBitmap (croppedWidth, croppedHeight, Bitmap.Config.ARGB_8888);

  Canvas offscreenCanvas = new Canvas (scaledImage);
  Matrix matrix = new Matrix();
  matrix.setRotate (rotations, centreX, centreY);
  matrix.postScale(scaleX, scaleY);
  offscreenCanvas.setMatrix (matrix);

  offscreenCanvas.drawBitmap (pickedImage, 0, 0, new Paint(Paint.DITHER_FLAG));

关于android - 使用矩阵旋转位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3440690/

相关文章:

android - 将 kankan.wheel 添加到 Android Studio

java - 奇怪的是找不到符号 '@IntDef' 但 Android Studio 没有显示错误

android - 创建加号和减号按钮,如日期选择器

c - 迭代矩阵中的不同对角线并在 C 中建立其起点和终点?

java - Android:如何获取单 channel 16位PNG位图的像素

java - Android位图 - 将圆裁剪成半圆

java - Android - 将参数传递给 Android 应用程序中的 RESTful URL

java - 将动态二维数组插入 TableView

c++ - 从 Scilab 迁移到 C++

java - Libgdx Android 游戏绘图形状(位图与 SVG)