android - 如何使背景图像持久化

标签 android android-imageview

我以前问过这个问题,但我的理解略有增加。我已经弄清楚如何让用户在布局上选择自定义背景图像。我用这个:

在我的 onCreate 方法中:

Button player = (Button) setBg.findViewById(R.id.plBg);

                player.setOnClickListener(new OnClickListener() {
                    public void onClick(View v) {

                        Intent i = new Intent(Intent.ACTION_PICK, 
                                android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

                        i.setDataAndType(android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI, "image/*");                                      
                        startActivityForResult(i, RESULT_LOAD_PLAYER);

                        setBg.dismiss();
                    }
                });

在我的 onActivityResult 方法中:

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

if (requestCode == RESULT_LOAD_PLAYER && 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();

         playerBg = (ImageView) findViewById(R.id.playerBg);
         playerBg.setImageBitmap(BitmapFactory.decodeFile(picturePath));
         playerBg.setScaleType(ScaleType.CENTER_CROP);
     }
}

但是当您“退出”应用程序时,背景会恢复为默认设置。我如何让背景选择坚持下去?

我已经看过了:Save bitmap to location

但是我很难理解。
我也试过让它保存在共享首选项中,但了解到那不是他们想要的。 我还是个初学者。提前致谢。

最佳答案

IMO,你可以在 sharedpreference 中设置 flag(boolean var) 来指示用户是否设置了任何背景?而且,如果用户设置任何背景,那么您可以将图片路径保存在 sharedpreference 中。所以,每次当你的 Activity 开始时,onCreate()。您检查 sharedpref 中的标志并使用保存在 shared pref 中的图片路径设置背景。

另外,我同意 matheszabi 的观点,你需要了解更多关于 android 生命周期的知识。

关于android - 如何使背景图像持久化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12378038/

相关文章:

android - 同步适配器和同步结果

Android ImageView 图片太大

android - 从服务器检索图像的可能方法

android - 如何在 Android 中翻转 ImageView?

java - 如何在 android 中使用 java 将 ImageView 添加到空布局

android - 在 ImageView 中为 scaleType ="centerCrop"设置动画

android - 如何在 Google nexus 7 (android 4.2) 中检查互联网连接

android - 如何使用 SHA256 算法对 .apk 进行签名

android - 如何在谷歌播放控制台中恢复到旧版本

android - 处理 MediaPlayer 抛出无限错误的异常