Android 怪异行为画布-位图自动旋转

Android 怪异行为画布-位图自动旋转,android,android-canvas,android-bitmap,Android,Android Canvas,Android Bitmap,我正在创建一个视图,允许我在给定的位图上绘制 创建画布时,我将位图设置为画布的基础。它在模拟器上工作得很好,但当我尝试在手机上使用它时,它会表现得很奇怪,并将位图旋转90度 下面是我如何创建画布的。我从以前的活动中获得了正确的背景图片 mBitmap = backgroundPicture.copy(Bitmap.Config.ARGB_8888, true); mBitmap = Bitmap.createScaledBitmap(mBitmap, width, height,

我正在创建一个视图,允许我在给定的位图上绘制

创建画布时,我将位图设置为画布的基础。它在模拟器上工作得很好,但当我尝试在手机上使用它时,它会表现得很奇怪,并将位图旋转90度

下面是我如何创建画布的。我从以前的活动中获得了正确的
背景图片

    mBitmap = backgroundPicture.copy(Bitmap.Config.ARGB_8888, true);
    mBitmap = Bitmap.createScaledBitmap(mBitmap, width, height, true);
    mCanvas = new Canvas(mBitmap);
下面是截图

当我拍照时:

它在“我的回收器”视图中显示的内容(正常显示)

画布上显示的内容(左侧90度)


谢谢你的帮助,我不习惯画画布,所以我有点迷路了://

经过一番挖掘,问题似乎来自我的智能手机,三星Galaxy。在一些三星型号中,摄像头会旋转,以便为手机的其他部件占据一席之地。一些三星可以处理差异,但如果他们不这样做,您将得到旋转0,并且您必须手动处理旋转问题

我希望这能帮助其他人

诚恳地,
Matthieu

你能分享计算宽度和高度的代码吗?当然,这里是public void init(DisplayMetrics,Uri picUri){int height=metrics.heightPixels;int width=metrics.widthPixels;}
图像方向似乎是问题的根源。也许你可以检查一下,然后旋转整个东西(替换宽度和高度,并在画图时旋转画布),我想了一下,但我不明白为什么在模拟器上它工作得很好:/这才是真正困扰我的地方,一台设备和另一台设备上的行为存在巨大差异,我建议你看看这个: