Per prima cosa, creo un tipo che contenga i tre membri Path, Etichetta e Categoria.
class JImmagine{ public String Path; public String Etichetta; public String Categoria; }Adesso inserisco un pulsante che prenda l'immagine dalla memoria e mi crei una bitmap da inserire in una ImageView in un thread separato mediante AsyncTask.
Sull'Activity metto un Button e una ImageView e poi scrivo il codice...
public class MainActivity extends Activity { Button button; ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); button=(Button)findViewById(R.id.button1); imageView=(ImageView)findViewById(R.id.imageView1); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent=new Intent(); intent.setAction(Intent.ACTION_PICK); intent.setData(Uri.parse("content://media/external/images/media")); startActivityForResult(intent,0); } }); } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data){ if(resultCode==RESULT_OK){ BitmapFactory.Options opzioni=new BitmapFactory.Options(); opzioni.inJustDecodeBounds=true; BitmapFactory.decodeFile(getPathFromUri(data.getData()), opzioni); int fattore=1; while(opzioni.outHeight/fattore>100 && opzioni.outWidth/fattore>100){ fattore*=2; } opzioni.inSampleSize=fattore; opzioni.inJustDecodeBounds=false; Bitmap bitmap=BitmapFactory.decodeFile(getPathFromUri(data.getData())); imageView.setImageBitmap(bitmap); } } private String getPathFromUri(Uri uri){ Cursor crs=getContentResolver().query(uri, null, null, null, null); int indice=crs.getColumnIndex(MediaStore.Images.ImageColumns.DATA); crs.moveToFirst(); String s=crs.getString(indice); crs.close(); return s; }Ecco, ho scritto di getto il codice che, a parte un errore di distrazione per non aver scritto crs.moveToFirst() mi comprometteva il risultato, ma l'ho individuato e corretto subito.
Funziona.
Ora, però, devo usare la mia classe JImmagine.
Per farlo, devo però avere due controlli per l'immissione dei dati Etichetta e Categoria.
Su questi, ricordo di aver trovato alcuni suggerimenti per far sì che, anche in modalità Landscape, l'activity restasse visibile...
E quindi è il caso di ripassare il tutto, dando magari anche uno sguardo ad altri tipi di layout...
Nessun commento:
Posta un commento