user3074215
user3074215

Reputation: 35

Get path of image

I have a n application that ask the user to select an image from the gallery and it will be displayed in an imagebutton. How can i get the path of an image found in an imagebutton as a string?

please help

public class NewPortal extends Activity implements OnClickListener, android.view.View.OnClickListener

{
    Bitmap bmp;
 public static final int REQUEST_CODE =1;

 @Override
 public void onCreate(Bundle savedInstanceState) 
 {
 super.onCreate(savedInstanceState);

 setContentView(R.layout.portallayout);
 ImageButton btn1 = (ImageButton)findViewById(R.id.imageButton2);
    btn1.setOnClickListener(this);

    Button btn2 = (Button)findViewById(R.id.button2);
    btn2.setOnClickListener(this);
 }

 public void onClick(View v) {

 Toast pieceToast=null;

 EditText eiteText;
switch (v.getId()) {

  case R.id.imageButton2:
   Intent intent = new Intent();
   intent.setType("image/*");
  intent.setAction(Intent.ACTION_GET_CONTENT);
  intent.addCategory(Intent.CATEGORY_OPENABLE);
   startActivityForResult(intent, REQUEST_CODE);
  int RESULT_LOAD_IMAGE = 1;
   break;

  case R.id.button2:

  eiteText=(EditText)findViewById(R.id.editText2);
  String result=eiteText.getText().toString();

  MySQLiteEntity entity = new MySQLiteEntity(1,
            "Random Post title",
            "Image",
            path of image ,
            result);

  MYSQLiteDataSource datasource = new MYSQLiteDataSource(getApplicationContext());
  datasource.createPost(entity);

  break;
 }
 }



    @Override
 public void onClick(DialogInterface dialog, int which) {
  // TODO Auto-generated method stub

 }



 @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult1(requestCode, resultCode, data);

    if(requestCode == RESULT_CANCELED) return;

    ParcelFileDescriptor fd;
    try {
        fd = getContentResolver().openFileDescriptor(data.getData(), "r");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
        return;
    }

    Bitmap bmp = BitmapFactory.decodeFileDescriptor(fd.getFileDescriptor());
    ImageButton imgButton = (ImageButton)findViewById(R.id.imageButton2);
    imgButton.setImageBitmap(bmp);
}   
   }

Upvotes: 0

Views: 730

Answers (1)

user3526735
user3526735

Reputation:

Use this code for choosing image from gallery :

public void photo(View v) {
    Intent i = new Intent(Intent.ACTION_PICK,
            android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    RESULT_LOAD_IMAGE = 1;
    startActivityForResult(i, RESULT_LOAD_IMAGE);
}

And for getting the path you can use :

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);



      if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK &&null != data)
      {
          Uri selectedImage = data.getData(); String[]
      filePathColumn = { MediaStore.Images.Media.DATA };

      Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
      cursor.moveToFirst();

      int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
      String picturePath = cursor.getString(columnIndex); cursor.close();

      }
 }

where RESULT_LOAD_IMAGE is integer declared 0 globally !

And try the below code to set Bitmap image to ImageView from a file stored inside a SD-Card.

File imgFile = new  File(“/sdcard/Images/test_image.jpg”);
if(imgFile.exists()){

Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);
myImage.setImageBitmap(myBitmap);

}

Upvotes: 1

Related Questions