三星 Galaxy S3 中的位图问题

Posted

技术标签:

【中文标题】三星 Galaxy S3 中的位图问题【英文标题】:Bitmap issue in Samsung Galaxy S3 【发布时间】:2012-08-28 16:36:38 【问题描述】:

我写了一个方法来改变相机拍摄的位图:

public Bitmap bitmapChange(Bitmap bm) 
    /* get original image size */
    int w = bm.getWidth();
    int h = bm.getHeight();

    /* check the image's orientation */
    float scale = w / h;

    if(scale < 1)  

        /* if the orientation is portrait then scaled and show on the screen*/
        float scaleWidth = (float) 90 / (float) w;
        float scaleHeight = (float) 130 / (float) h;
        Matrix mtx = new Matrix();
        mtx.postScale(scaleWidth, scaleHeight);
        Bitmap rotatedBMP = Bitmap.createBitmap(bm, 0, 0, w, h, mtx, true);
        return rotatedBMP;

     else 

        /* if the orientation is landscape then rotate 90 */
        float scaleWidth = (float) 130 / (float) w;
        float scaleHeight = (float) 90 / (float) h;
        Matrix mtx = new Matrix();
        mtx.postScale(scaleWidth, scaleHeight);
        mtx.postRotate(90);
        Bitmap rotatedBMP = Bitmap.createBitmap(bm, 0, 0, w, h, mtx, true);
        return rotatedBMP;
    

它在其他 android 设备(甚至是 Galaxy Nexus)中运行良好,但在三星 Galaxy S3 中,缩放后的图像不会显示在屏幕上。

我尝试标记bitmapChange方法,让它在屏幕上显示原始大小的位图,但S3在屏幕上也不显示任何内容。

eclipse中变量的信息是here。 索尼xperia的信息是here。

xperia 和其他设备工作正常。

编辑:

我在 LogCat 中得到了一些奇怪的日志,

当我拍照时,LogCat 会显示一些信息:

here

我从不使用视频...

为什么要播放视频??

【问题讨论】:

不要关注我必须缩放位图的原因,这是一个我不想说的复杂故事。让我们关注一下为什么S3不能在ImageView上显示图片,mHight和mWidth在S3和xperia中也是-1,但是为什么xperia可以正常工作,即使是另一个设备……,只是S3失败了 【参考方案1】:

我搜索了一下,似乎有两个可能的原因:

1) S3 存在内存问题。查看this SO Question S3 即使在缩放图像时也会出现问题!

解决方案- 解决方案是使位图转换更内存友好,如here 和this SO question 中讨论的那样


2) 三星手机设置 EXIF 方向标签,而不是旋转单个像素

解决方案-看看this SO question

【讨论】:

在我的情况下,Samsung Galaxy Nexsus 工作正常...只是 S3 无法显示图像,我在 LogCat 中发现了一些奇怪的消息,有人知道为什么在我想要的时候触发了视频功能拍照?

以上是关于三星 Galaxy S3 中的位图问题的主要内容,如果未能解决你的问题,请参考以下文章

相机意图不适用于三星 Galaxy S3

三星 Galaxy S3 的媒体查询

三星 Galaxy S3 上的原生窗口渲染问题

三星 Galaxy s3 4.1.1 和 4.1.2 上的 Canvas globalCompositeOperation 问题

三星 Galaxy S3、S4、S5 的 Android 相机/图片方向问题

三星 Galaxy S3 上的 Android 相机预览不正确