从Sharedpreferences路径中检索图片

时间:2014-09-02 09:51:40

标签: java android sharedpreferences imagebutton

在我正在构建的应用中,用户从图库中选择一张图片,路径将保存在“共享首选项”中。然后,我想从存储的路径中检索此图片,但它不起作用。该图像是一个ImageButton,用户单击该按钮以从Gallery中选择图片。 我必须检索图片并在ImageButton上“放”的代码是:

此代码现在确实有效,请将其放在此处,以防其他人使用。

       File imgFile = new File(sharedpreferences.getString(Path, LOCATION_SERVICE));
       if(imgFile.exists())
         {
            Bitmap b = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
            ImageButton img=(ImageButton)findViewById(R.id.AddPic);
            img.setImageBitmap(b);
        }

我知道路径是正确的,但我无法检索图片并将其放在ImageButton上。

下面是用户点击ImageButton的代码,并从库中选择一张图片,该图片的路径存储在sharedPreferences中:

            imgButton = (ImageButton) findViewById(R.id.AddPic);
            imgButton.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent GaleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
                startActivityForResult(GaleryIntent, RESULT_LOAD_IMAGE);

            }
        });
    }
    @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 SelectedCursor = getContentResolver().query(SelectedImage, FilePathColumn, null, null, null);
            SelectedCursor.moveToFirst();

            int columnIndex = SelectedCursor.getColumnIndex(FilePathColumn[0]);
            String picturePath = SelectedCursor.getString(columnIndex);
            SelectedCursor.close();

            imgButton.setImageBitmap(BitmapFactory.decodeFile(picturePath));

            Editor editor = sharedpreferences.edit();
            editor.putString(Path, picturePath);
            editor.commit();

        }

    }   

我做错了什么? 非常感谢!

0 个答案:

没有答案