Android   发布时间:2022-04-01  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何使用共享首选项保存图像路径大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

我有@L_673_1@活动,打开另@L_673_1@活动,以获得相机画廊图片.图片返回到我原来的活动并在imageView中休息.这工作正常.如何保存图像,以便用户稍后返回或杀死应用程序时图像仍然存在.我知道@R_333_10675@用共享首选项来获取图像路径而不是保存图像本身,但我只是不知道如何做到这一点.

活动A.

private ImageView im1;
private @R_607_10495@ng SELEctedImagePath;
private static final int SELECT_PICTURE = 1;

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (resultCode == RESULT_OK) {
    if (requestCode == SELECT_PICTURE) {
    Uri SELEctedImageUri = data.getData();
    SELEctedImagePath = getPath(SELEctedImageUri);
    System.out.println("Image Path : " + SELEctedImagePath);
    im1.setImageURI(SELEctedImageUri);
    }}}
public @R_607_10495@ng getPath(Uri uri) {
    @R_607_10495@ng[] 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.get@R_607_10495@ng(column_indeX);
    };
   ((Button)dialogView.findViewById(R.id.button3))
   .setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
    Intent intent = new Intent();
    intent.setType("image/*");
    intent.setAction(Intent.ACTION_GET_CONTENT);
    startActivityForResult(Intent.createChooser(intent,"SELEct Picture"), SELECT_PICTURE);
    }});

活动B.

    Button send = (Button) findViewById(R.id.send);
    send.setOnClickListener(new OnClickListener() {
 public void onClick(View v) {              
            Intent intent=new Intent();
            setResult(RESULT_OK, intent);
            Bundle bundle=new Bundle();
            bundle.puTint("image",R.id.showImg);
            intent.putExtras(bundlE);
            finish();

 public void onActivityResult(int requestCode, int resultCode, Intent data) {
         if (resultCode == RESULT_OK) {
         if (requestCode == SELECT_PICTURE) {
            Uri SELEctedImageUri = data.getData();
            SELEctedImagePath = getPath(SELEctedImageUri);
            System.out.println("Image Path : " + SELEctedImagePath);
            img.setImageURI(SELEctedImageUri);
        }}}

public @R_607_10495@ng getPath(Uri uri) {
    @R_607_10495@ng[] 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.get@R_607_10495@ng(column_indeX);
    }

解决方法:

使用图像覆盖Activity中的onPause()方法(以了解为什么onPause,检查活动图的生命周期:http://developer.android.com/reference/android/app/Activity.html),如下所示:

@Override
protected void onPause() {
    SharedPrefrences sp = getSharedPreferences("AppSharedPref", 0); // Open SharedPreferences with name AppSharedPref
    Editor editor = sp.edit();
    editor.put@R_607_10495@ng("ImagePath", SELEctedImagePath); // Store SELEctedImagePath with key "ImagePath". This key will be then used to retrieve data.         
    editor.commit();
    super.onPause();
}

这意味着每当此Activity进入后台时,图像路径将保存在名称为AppSharedPref的SharedPreferences中 – 此名称可以是您喜欢的任何名称,但在检索数据时需要使用相同的名称.

然后在同@L_673_1@Activity中覆盖onResume()方法,以便在Activity到达前台时检索图像路径:

@Override
protected void onResume() {
    SharedPreferences sp = getSharedPreferences("AppSharedPref", 0);
    SELEctedImagePath = setTings.get@R_607_10495@ng("ImagePath", "");
    super.onResume();
}

您可能还想使用覆盖其他方法,例如根据图表的onStart(),但我留给您.

大佬总结

以上是大佬教程为你收集整理的android – 如何使用共享首选项保存图像路径全部内容,希望文章能够帮你解决android – 如何使用共享首选项保存图像路径所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: