Ho un layout molto semplice con un ImageView. La mia applicazione apre la fotocamera, salva un'immagine e quindi visualizza l'immagine in ImageView con BitmapFactory.decodeFile
. L'unico problema è che è ruotato. Capisco che a) questo è dovuto al fatto che la fotocamera del telefono è predefinita in orizzontale, quindi questo deve essere gestito nel codice eb) l'elaborazione dell'immagine deve essere eseguita in un thread separato dall'interfaccia utente.Android: Ruota e visualizza l'immagine dal file
La documentazione di allenamento di Android sembra essere orientata verso il caricamento di immagini da ID di risorsa invece di percorsi di file. Ciò getta solo una chiave nelle cose in quanto sono in grado di seguire i tutorial fino a un certo punto, ma alla fine ho problemi a riconciliare le differenze.
Sono certamente nuovo in questo modo, quindi se qualcuno potrebbe semplicemente darmi una panoramica di alto livello di ciò che deve essere fatto per realizzare questo, lo apprezzerei molto. Il seguente codice è dove sto attualmente aggiungendo la bitmap a ImageView. Suppongo che la mia chiamata al thread separato andrebbe in onCreate
?
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_display_image);
Bitmap bm = BitmapFactory.decodeFile(MainActivity.image_path);
displayImageView = (ImageView) findViewById(R.id.myImageView);
displayImageView.setImageBitmap(bm);
}
Così si desidera ruotare solo l'immagine? –
corretto. ImageView stesso è orientato correttamente. È solo che l'immagine al suo interno viene sempre visualizzata di 90 gradi in senso antiorario. Il file, tuttavia, è orientato correttamente, quindi ho solo bisogno di ruotarlo per l'applicazione. – user2864874