Quiero mostrar imágenes usando el método drawBitmap(). Pero antes quiero cambiar el tamaño según las dimensiones de la pantalla. Tengo un problema con la calidad de la imagen del resultado. Puede ver capturas de pantalla y código de prueba a continuación. ¿Cómo puedo cambiar el tamaño de las imágenes en tiempo de ejecución con una buena calidad?android: calidad de las imágenes redimensionadas en tiempo de ejecución
Gracias por las soluciones.
imagen original: alt text http://dl.dropbox.com/u/709109/gradient.png
Resultado pantalla en el dispositivo: 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();
}
}
});
}
}
¡Gracias, es una respuesta útil! Pero no tengo reputación de votarlo. – shinydev
Ahora estoy usando el "565 dither photoshop plugin" para preparar mi gráfico. Porque el dithering es una operación de alto costo y no funciona con los métodos decodeStream y drawBitmap. – shinydev
Android puede hacer 32 bits bien. Solo asegúrese de que tanto su mapa de bits como su ventana utilicen el formato ARGB8888. –