2012-03-06 31 views
5

以下のコードは、ビットマップのサイズを変更し、縦横比を保持します。 もっと効率的なサイズ変更の方法があるのだろうかと思っていました。なぜなら、私はAndroid APIで既に利用可能なコードを書いているというアイデアを持っているからです。ビットマップのサイズ変更

答えて

0

私は本当にそうは思わない、私はあなたとほぼ同じ方法で行われ、Androidの開発者ページからのアイデアを持っています... 。あなたがしたいのは、ビューにビットマップを表示するだけであれば、myImageView.setImageBitmap(bitmap)を呼び出してフレームワークのサイズを変更させるだけです。しかし、メモリが不安な場合は、最初にスケーリングを行うとよいでしょう。

0

は、あなたがイメージを使用している方法によって異なり

private Bitmap resizeImage(Bitmap bitmap, int newSize){ 
    int width = bitmap.getWidth(); 
    int height = bitmap.getHeight(); 

    int newWidth = 0; 
    int newHeight = 0; 

    if(width > height){ 
     newWidth = newSize; 
     newHeight = (newSize * height)/width; 
    } else if(width < height){ 
     newHeight = newSize; 
     newWidth = (newSize * width)/height; 
    } else if (width == height){ 
     newHeight = newSize; 
     newWidth = newSize; 
    } 

    float scaleWidth = ((float) newWidth)/width; 
    float scaleHeight = ((float) newHeight)/height; 

    Matrix matrix = new Matrix(); 
    matrix.postScale(scaleWidth, scaleHeight); 

    Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, 
      width, height, matrix, true); 

    return resizedBitmap; 
} 
関連する問題