Eseguo alcune operazioni (miglioramento della qualità e un po 'di ridimensionamento) su un oggetto Bitmap
e quindi lo memorizzo utilizzando la funzione bitmap.compress()
dando un nome file "myfile.png".Come caricare un ImageView con un file PNG senza utilizzare "setImageBitmap()"?
newbitmap = processImage(bitmap);
FileOutputStream fos = context.openFileOutput("myfile.png", Context.MODE_PRIVATE);
newbitmap.compress(CompressFormat.PNG, 100, fos);
Ora voglio caricare questa immagine in un ImageView
ma non posso usare setImageBitmap()
per farlo. C'è qualche alternativa?
Il motivo per cui cant utilizzare setImageBitmap()
è che sto usando RemoteViews
per un widget, e usando il metodo bitmap porta a Impossibile errore Binder Transaction quando l'immagine è grande.
Ho cercato di impostare l'immagine URI utilizzando il codice qui sotto, ma l'immagine non viene caricata sul ImageView
:
RemoteViews rv = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
File internalFile = context.getFileStreamPath("myfile.png");
Uri internal = Uri.fromFile(internalFile);
rv.setImageViewUri(R.id.widgetImageView, internal);
updateAppWidget(awID, rv);
Grazie per il vostro aiuto!
C'è un modo per inviare array di byte? Quindi decodificare la bitmap dall'altra parte. Non ne sono sicuro. – Shaiful