2012-05-31 19 views
5

Bir ImageButton'u tıklatıp ardından Android Galerisi'ne veya kameraya götüren bir uygulamaya sahibim. Aradığım şey, görüntü yolunu tıklatılmış/alınan görüntüden alıp bir dizeye kaydeden onActivityResult yöntemidir.Android galerisindeki bir görüntüden nasıl yol alabilirim?

Birisi bana yardımcı olabilir mi?

private void showImageDialog() { 
    final String [] items = new String [] {"From Camera", "From SD Card"}; 
    ArrayAdapter<String> adapter = new ArrayAdapter<String> (this, android.R.layout.select_dialog_item,items); 
    AlertDialog.Builder builder = new AlertDialog.Builder(this); 

    builder.setTitle("Select Image"); 
    builder.setAdapter(adapter, new DialogInterface.OnClickListener() { 
     public void onClick(DialogInterface dialog, int item) { 
      if (item == 0) { 
       Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
       File file = new File(Environment.getExternalStorageDirectory(), 
            "tmp_avatar_" + String.valueOf(System.currentTimeMillis()) + ".jpg"); 
       mImageCaptureUri = Uri.fromFile(file); 

       try { 
        intent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mImageCaptureUri); 
        intent.putExtra("return-data", true); 

        startActivityForResult(intent, PICK_FROM_CAMERA); 
       } catch (Exception e) { 
        e.printStackTrace(); 
       } 

       dialog.cancel(); 
      } else { 
       Intent intent = new Intent(); 

       intent.setType("image/*"); 
       intent.setAction(Intent.ACTION_GET_CONTENT); 

       startActivityForResult(Intent.createChooser(intent, "Complete action using"), PICK_FROM_FILE); 
      } 
     } 
    }); 

    final AlertDialog dialog = builder.create(); 
    dialog.show(); 
} 

cevap

4

kullanın bu kod,

((Button) findViewById(R.id.Button01)) 
       .setOnClickListener(new OnClickListener() { 

        public void onClick(View arg0) { 

         // in onCreate or any event where your want the user to 
         // select a file 
         Intent intent = new Intent(); 
         intent.setType("image/*"); 
         intent.setAction(Intent.ACTION_GET_CONTENT); 
         startActivityForResult(Intent.createChooser(intent, 
           "Select Picture"), SELECT_PICTURE); 
        } 
       }); 


public void onActivityResult(int requestCode, int resultCode, Intent data) { 
     if (resultCode == RESULT_OK) { 
      if (requestCode == SELECT_PICTURE) { 
       Uri selectedImageUri = data.getData(); 
       selectedImagePath = getPath(selectedImageUri); 

       Log.v("IMAGE PATH====>>>> ",selectedImagePath); 
      } 
     } 
    } 

    public String getPath(Uri uri) { 
     String[] projection = { MediaStore.Images.Media.DATA }; 
     Cursor cursor = managedQuery(uri, projection, null, null, null); 
     int column_index = cursor 
       .getColumnIndexOrThrow(MediaStore.Images.Media.DATA); 
     cursor.moveToFirst(); 
     return cursor.getString(column_index); 
    } 
} 

selectedImagePath

görüntünün yolu: Burada Galeri/Kamera açılıyor onClick yöntemidir.

İlgili konular