6

こんにちは私は、大きなビットマップを小さなサイズに合わせる必要がある1つの優れたAndroidアプリに取り組んでいますimageview。大きな画像1024 X 780imageviewを表示するためにサイズ300dp X 300dpを使用しています

元の画像と同じ品質で大きな画像を小さくするにはどうすればよいですか?

4

3 に答える 3

10

これを試して :

public static Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
    int width = bm.getWidth();
    int height = bm.getHeight();
    float scaleWidth = ((float) newWidth) / width;
    float scaleHeight = ((float) newHeight) / height;
    // CREATE A MATRIX FOR THE MANIPULATION
    Matrix matrix = new Matrix();
    // RESIZE THE BIT MAP
    matrix.postScale(scaleWidth, scaleHeight);
    // RECREATE THE NEW BITMAP
    Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height,
            matrix, false);
    return resizedBitmap;

}

使いやすい :

Bitmap bmResized=getResizedBitmap(yourBitmap,newHeight,newWidth);

そして、サイズ変更された画像を取得します

注:リソース イメージのサイズを変更する場合は、これを使用してビットマップに変換します。

Bitmap bmOrginal=BitmapFactory.decodeResource(this.getResources(), R.drawble.yourRes);
Bitmap bmResized=getResizedBitmap(bmOrginal,newHeight,newWidth);

次に、Resized Image を設定します。

image.setImageBitmap(bmResized);
于 2012-10-09T16:25:43.810 に答える
0

@ニコラコメントが私の質問に答えました。将来の読者に役立つように、これを回答に書いています

サイズ 300x300 のサムネイル画像を作成する必要がありますが、縦横比は維持されます。残りのスペースを塗りつぶす色で中央に配置されたキャンバスに、より大きな画像を描くことができます。

于 2014-05-20T16:17:43.600 に答える
0

試しましたかim.setScaleType(ScaleType.FIT_XY)

于 2012-10-09T16:15:39.733 に答える