Tôi muốn hiển thị hình ảnh bằng phương thức drawBitmap(). Nhưng trước khi tôi muốn thay đổi kích thước nó theo kích thước màn hình. Tôi gặp vấn đề với chất lượng hình ảnh kết quả. Bạn có thể xem ảnh chụp màn hình và mã kiểm tra bên dưới. Làm thế nào tôi có thể thay đổi kích thước hình ảnh trong thời gian chạy với chất lượng tốt?android: chất lượng của hình ảnh được thay đổi kích thước trong thời gian chạy
Cảm ơn bạn đã giải pháp.
hình ảnh gốc: alt text http://dl.dropbox.com/u/709109/gradient.png
Kết quả chụp màn hình trên thiết bị: alt text http://dl.dropbox.com/u/709109/device.png
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Rect;
import android.os.Bundle;
import android.view.View;
import android.widget.LinearLayout;
import java.io.IOException;
import java.io.InputStream;
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
LinearLayout container = (LinearLayout) findViewById(R.id.container);
container.addView(new View(this) {
@Override
protected void onDraw(Canvas canvas) {
Bitmap unscaledBitmap;
try {
InputStream in = getAssets().open("images/gradient.png");
unscaledBitmap = BitmapFactory.decodeStream(in);
in.close();
canvas.drawBitmap(unscaledBitmap, null, new Rect(0, 0, 320, 480), null);
} catch (IOException e) {
e.printStackTrace();
}
}
});
}
}
Cảm ơn bạn, đó là câu trả lời hữu ích! Nhưng tôi không có danh tiếng để bỏ phiếu. – shinydev
Bây giờ tôi đang sử dụng "565 dither photoshop plugin" để chuẩn bị đồ họa của tôi. Bởi vì phối màu là hoạt động chi phí cao và nó không hoạt động với các phương thức decodeStream và drawBitmap. – shinydev
Android có thể làm 32 bit tốt. Chỉ cần đảm bảo cả bitmap và cửa sổ của bạn đều sử dụng định dạng ARGB8888. –