2016-11-12 55 views
0

我想知道如何在圖像視圖中保存並顯示圖像。在android studio中保存並顯示圖像

我的應用程序有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(); 
} 

}

回答

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); 
} 
+0

嗨,它的工作原理除了IF(imageUri! = null){ imagen.setImageURI(imageUri); } –

相關問題