如何从Gallery中选择任何文件

时间:2014-12-22 09:48:41

标签: android attachment

我有一个代码,我可以从库中选择任何图像并将其附加到我的活动中,但我希望任何mp3文件或任何文本文件都与附件一样。

这是我的代码:     // b1是我的按钮

b1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
            Intent i = new Intent(
                        Intent.ACTION_PICK,
                        android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);


                startActivityForResult(i,SELECT_PHOTO);  
            }
        });

//从Gallery返回结果:

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

            if (requestCode == SELECT_PHOTO && resultCode == RESULT_OK && null != data) {

                Uri selectedImage = data.getData();

                System.out.println("Path="+selectedImage);
                String[] filePathColumn = {     MediaStore.Images.Media.DATA,MediaStore.Audio.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();

            Bitmap bitmap=BitmapFactory.decodeFile(picturePath);
             img.setImageBitmap(bitmap);

            }

        }

2 个答案:

答案 0 :(得分:0)

你可以做MP3

Intent pickMedia = new Intent(Intent.ACTION_GET_CONTENT);
pickMedia.setType("audio/*");
startActivityForResult(pickMedia,1);

答案 1 :(得分:0)

使用此代码:

b1.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    Intent i = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                    startActivityForResult(i, RESULT_LOAD_IMAGE);

                }
            });

// And returning result from Gallery:

if (requestCode == RESULT_LOAD_IMAGE && 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();
            ImageView imageView = (ImageView) findViewById(R.id.register_photo);
            imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
           }