在 Android Studio 中保存并显示图像

问题描述 投票:0回答:1

我想知道如何保存并在图像视图中显示图像。

我的应用程序有 2 个按钮,根据按下的按钮,图像视图会获取图像。我想要做的是保存该图像,当我再次打开应用程序时,所选图像仍然存在。

我知道保存某些内容的唯一方法是共享首选项,但在这种情况下它不起作用。

有人可以帮助我吗?谢谢

这是我的代码:

public class MainActivity extends AppCompatActivity {

    ImageView imagen;
    Button boton;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        imagen = (ImageView) findViewById(R.id.imagen);
        boton = (Button) findViewById(R.id.boton);

        SharedPreferences preferences= getSharedPreferences("Preferencias", MODE_PRIVATE);
        String imagen= preferences.getString("Imagen", null);
    }

    public void boton1(View view){

        imagen.setImageResource(R.drawable.imagen1);

        SharedPreferences preferences = getSharedPreferences("Preferencias", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString("Imagen", imagen.getResources().toString());
        editor.apply();
    }

    public void boton2(View view){

        imagen.setImageResource(R.drawable.imagen2);

        SharedPreferences preferences = getSharedPreferences("Preferencias", Context.MODE_PRIVATE);
        SharedPreferences.Editor editor = preferences.edit();
        editor.putString("Imagen", imagen.getResources().toString());
        editor.apply();
    }

}
android android-studio sharedpreferences
1个回答
0
投票

您可以将可绘制对象的字符串格式的 URI 保存在您的共享首选项中。像这样(用可绘制名称重命名 yourImageName):

Uri imageUri = Uri.parse("android.resource://"+context.getPackageName()+"/drawable/yourImageName");
String uri_toString = imageUri.toString();  

SharedPreferences preferences = getSharedPreferences("Preferencias", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("imageUri", uri_toString);
editor.apply();

在 MainActivity 中,在

onResume
中设置 ImageView 的图像源,如下所示:

SharedPreferences preferences = getSharedPreferences("Preferencias", Context.MODE_PRIVATE);
String imageUri = preferences.getString("imageUri",null);

if (imageUri != null) {
   Uri uri = Uri.parse(imageUri);
   yourImageView.setImageURI(uri);
}
© www.soinside.com 2019 - 2024. All rights reserved.