Bitmap issue in Samsung Galaxy S3

Posted by user1531240 on Stack Overflow See other posts from Stack Overflow or by user1531240
Published on 2012-09-04T03:19:08Z Indexed on 2012/09/04 3:38 UTC
Read the original article Hit count: 184

Filed under:

I wrote a method to change Bitmap from camera shot :

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;
    }
}

It works fine in another Android device, even Galaxy Nexus but in Samsung Galaxy S3, the scaled image doesn't show on screen.

I tried to mark the bitmapChange method , let it show the original size Bitmap on screen but S3 also show nothing on screen.

The information of variables in eclipse is here. The information of sony xperia is here.

xperia and other device is working fine.

© Stack Overflow or respective owner

Related posts about android