Ho un Bitmap
con una dimensione di 320x480
e ho bisogno di allungare su diverse schermate del dispositivo, ho provato ad utilizzare questo:Come ridimensionare una bitmap eficiently e con fuori perdere la qualità in Android
Rect dstRect = new Rect();
canvas.getClipBounds(dstRect);
canvas.drawBitmap(frameBuffer, null, dstRect, null);
funziona , l'immagine riempie l'intero schermo come volevo ma l'immagine è pixelata e sembra male. Poi ho provato:
float scaleWidth = (float) newWidth/width;
float scaleHeight = (float) newHeight/height;
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
Bitmap resizedBitmap = Bitmap.createBitmap(frameBuffer, 0, 0,
width, height, matrix, true);
canvas.drawBitmap(resizedBitmap, 0, 0, null);
questa volta sembra perfetto, piacevole e scorrevole, ma questo codice deve essere nel mio ciclo di gioco principale e la creazione di Bitmap
s ogni iterazione lo rende molto lento. Come posso ridimensionare la mia immagine in modo che non venga sottoposta a pixel e che venga eseguita velocemente?
trovato la soluzione:
Paint paint = new Paint();
paint.setFilterBitmap();
canvas.drawBitmap(bitmap, matrix, paint);
Se hai trovato la tua soluzione, dovresti aggiungerla come risposta alla tua domanda e accettarla tu stesso in modo che altri non aggiungano risposte indesiderate alla tua domanda. – Kuffs