【问题标题】:Using shared preferences with images对图像使用共享首选项
【发布时间】:2016-02-15 07:29:04
【问题描述】:

好的,我可以使用共享首选项来保存文本,以便下次加载应用时显示/恢复文本

但是有没有办法使用按钮背景图像来做到这一点?

【问题讨论】:

    标签: button background sharedpreferences


    【解决方案1】:

    不知道您到底不想做什么,但您显然可以将图像(位图)保存为字节数组。您也可以使用 Bitmap 的 compress 方法对其进行压缩。如果您确定要使用共享首选项保存图像,This 会有所帮助。

    【讨论】:

    • 好吧,按钮都与图像视图有关,所以我想这是我要保存的图像视图。我试图保存图像路径并在启动时调用它。用户从应用程序内的预设选择中定义图像。而且我只是希望应用程序在关闭时始终记住选择并在启动时调用它
    • 那么在这种情况下,您可以将带有按钮名称的图像名称保存为共享首选项中的键,并在启动时调用!保存整个图像没有意义。
    • 干杯会在我回家时让你知道
    • 好的,在运行初步测试后,它看起来可以工作,但我无法从 ImageView 获取图像位置/名称
    • 没关系,我找到了,我有一小段错误代码。等我有时间再分享解决方案
    【解决方案2】:
    ImageView iv = (ImageView) findViewById(R.id.imageView);
            Intent intent = getIntent();
            Boolean changeImageBg = intent.getBooleanExtra("change", false);
            if (changeImageBg) {
                iv.setImageResource(R.drawable.arrow_up_left_2small);
                SharedPreferences sharedpreferences = getSharedPreferences("done", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = sharedpreferences.edit();
                String string;
                string = "arrow_up_left_2small";
                editor.putString("aul", string);
                editor.commit();
    

    好的,以上是节省的一面。由于我的图像是应用程序的一部分,因此一旦我了解了该怎么做,我就可以轻松地保存它。 我将使用布尔值根据活动布尔值触发不同的图像我将能够触发适当图像的保存,我会在某个时候考虑将此代码传递给应用程序,这样我就可以使用更少的代码。

    SharedPreferences prefs = this.getSharedPreferences("done", Context.MODE_PRIVATE);
    
            String imageName = prefs.getString("aul", "");
            int resID = getResources().getIdentifier(imageName, "drawable", getPackageName());
            ImageView image = (ImageView) findViewById(R.id.imageView);
            image.setImageResource(resID);
        }
    

    这里是我调用文件路径并在创建时使用它来重新应用图片

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多