开发者

attaching image from gallery fc on repeatedly attaching the same image

i am attaching the image from gallery and show it other view i attach 2 times success full but on next trial of attaching image from gallery force close my application,why?i am very surprise why its happening?

code for open galery

            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent,
                    "Select Picture"), SELECT_PICTURE);

code for selecting path is...

       public void onActivityResult(int requestCode, int resultCode, Intent data) {

            if (requestCode == CAMERA_PIC_REQUEST||requestCode == SELECT_PICTURE) {
                try{
                     selectedImageUri = data.getData();

                    //OI FILE Manager
                    filemanagerstring = selectedImageUri.getPath();

                    //MEDIA GALLERY
                   selectedImagePath = getPath(selectedImageUri);

                    //DEBUG PURPOSE - you can delete this if you want
                    if(selectedImagePath!=null){

                         Intent i=new Intent(MainMenu.this,I开发者_如何学Gomageprview.class);
                          startActivity(i);
                          System.out.println(selectedImagePath);
                    }

                    else
                        System.out.println("selectedImagePath is null");
                    if(filemanagerstring!=null)
                        System.out.println(filemanagerstring);
                    else System.out.println("filemanagerstring is null");

                    //NOW WE HAVE OUR WANTED STRING
                    if(selectedImagePath!=null)
                        System.out.println("selectedImagePath is the right one for you!");
                    else
                        System.out.println("filemanagerstring is the right one for you!");
                }catch (NullPointerException e) {
                    // TODO: handle exception
                }               }
        }

        //UPDATED!
           public String getPath(Uri uri) {
        String[] projection = { MediaStore.Images.Media.DATA };
        Cursor cursor = managedQuery(uri, projection, null, null, null);
        if(cursor!=null)
        {
            //HERE YOU WILL GET A NULLPOINTER IF CURSOR IS NULL
            //THIS CAN BE, IF YOU USED OI FILE MANAGER FOR PICKING THE MEDIA
            int column_index = cursor
            .getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
            cursor.moveToFirst();
            return cursor.getString(column_index);
        }
        else return null;
    }

code for displaying it to other activity is..

        setContentView(R.layout.imagepreview);
    ImageView iv=(ImageView)findViewById(R.id.imageView1);
    bmImg = BitmapFactory.decodeFile(MainMenu.selectedImagePath);
    iv.setImageBitmap(bmImg);

it attach two or one time but on next trial of one after other it force close...

thanks in advance


i Use this code to select image from Gallery ....

Intent intent = new Intent();
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
startActivityForResult(Intent.createChooser(intent, "Select Picture"),1);

After that i Call Below Methods For Get Image data...

public void onActivityResult(int requestCode, int resultCode, Intent data) {  
   if (resultCode == RESULT_OK) {
       if (requestCode == 1) {
           // currImageURI is the global variable I'm using to hold the content:// URI of the image
           currImageURI = data.getData();
           getRealPathFromURI(currImageURI);
       }
     }
   }


public String getRealPathFromURI(Uri currImageURI) {
   // can post image
   String [] proj={MediaStore.Images.Media.DATA};
   Cursor cursor = managedQuery( currImageURI,
           proj, // Which columns to return
           null,       // WHERE clause; which rows to return (all rows)
           null,       // WHERE clause selection arguments (none)
           null); // Order-by clause (ascending by name)
   int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
   cursor.moveToFirst();
      ImageView img_pic = (ImageView)findViewById(R.id.ImageView1);
      img_pic.setBackgroundDrawable(null);
      img_pic.setImageURI(currImageURI);
   return cursor.getString(column_index);

}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜