android - 奇怪的行为 Canvas - 位图自行旋转

标签 android android-canvas android-bitmap

我正在创建一个 View ,允许我在给定的位图上进行绘制。

当我创建 Canvas 时,我将位图设置为它的基础。它在模拟器上完美运行,但是当我尝试在手机上使用它时,它表现得很奇怪,并将位图旋转 90 度。

这是我创建 Canvas 的方法。我从之前的 Activity 中获得了正确的 backgroundPicture

    mBitmap = backgroundPicture.copy(Bitmap.Config.ARGB_8888, true);
    mBitmap = Bitmap.createScaledBitmap(mBitmap, width, height, true);
    mCanvas = new Canvas(mBitmap);

这是屏幕截图

当我拍照时: When I take the picture

它在我的回收站 View 中显示的内容(正常显示) recycler view display

Canvas 上显示的内容(左侧 90 度) weird display

谢谢您的帮助,我不习惯使用 Canvas ,所以我有点迷失:/

最佳答案

经过一番挖掘,问题似乎出在我的智能手机上,即三星 Galaxy A3。在某些三星型号中,相机会旋转,以便为手机的其他组件腾出位置。一些三星可以处理差异,但如果他们不这样做,您将得到旋转 0,并且您必须手动逐个型号地处理旋转问题

我希望这对其他人有帮助。

诚挚地, 马蒂厄

关于android - 奇怪的行为 Canvas - 位图自行旋转,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49408812/

相关文章:

android - Android 4.3 上的 javax.net.ssl.SSLHandshakeException

android - 如何引用 sqlite db 列以在更新语句中使用

android - 手绘图像裁剪在位图区域内绘制

android - Canvas - 在 Android 上放大、移动和缩放

java - 如何在android中使用位图/可绘制而不是颜色常量

android - 如何使用模糊库获取直接位图结果

android - 空对象引用上的 Bitmap.getWidth()'

java - 在 Android 中将 RGB 值数组转换为图像

android - “Obsolete custom lint check” 来自 `androidx.appcompat.AppCompatIssueRegistry`,这需要更新的 API 级别

Android - requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS) 做什么?