我正在尝试向我的应用添加功能,以允许用户通过单击按钮然后从其库中选择图像来选择将在按钮上显示的图像。我有下面的代码,允许选择图像并在按钮上显示它,但如果用户退出应用程序,它将重置为默认图像。我一直试图找出如何合并数据库来实现这一目标,但没有太多运气。想知道是否有人有这样的例子或想法以不同的方式去做这个?感谢。
package com.example.imagepicker;
import java.io.FileNotFoundException;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.TextView;
public class ImagePicker extends Activity {
TextView textTargetUri;
ImageView targetImage;
ImageButton buttonLoadImage;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
textTargetUri = (TextView)findViewById(R.id.targeturi);
buttonLoadImage = (ImageButton)findViewById(R.id.Button01);
}
public void button1pressed(View v) {
Intent intent = new Intent(Intent.ACTION_PICK,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
Uri targetUri = data.getData();
textTargetUri.setText(targetUri.toString());
Bitmap bitmapa;
Bitmap bitmapb;
try {
bitmapa = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
bitmapb = Bitmap.createScaledBitmap (bitmapa,100,100,false);
buttonLoadImage.setImageBitmap(bitmapb);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
答案 0 :(得分:1)
您可以使用sharedpreferences,它可以在应用程序级别维护数据。 您可以使用共享偏好来存储上次在应用程序中为您的按钮选择了哪些图像的信息。 参考这些链接
http://marakana.com/forums/android/examples/63.html
http://saigeethamn.blogspot.com/2009/10/shared-preferences-android-developer.html