我下面的代码将一个图像从gallery放入我的ImageButton中,但当我离开应用程序或移动到另一个活动时,图像总是不会保存,第一个背景会再次出现。
-我的班级
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Adding the picture bit
imgButton = (ImageButton) findViewById(R.id.AddPic);
imgButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent GaleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(GaleryIntent, RESULT_LOAD_IMAGE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri SelectedImage = data.getData();
String[] FilePathColumn = {MediaStore.Images.Media.DATA };
Cursor SelectedCursor = getContentResolver().query(SelectedImage, FilePathColumn, null, null, null);
SelectedCursor.moveToFirst();
int columnIndex = SelectedCursor.getColumnIndex(FilePathColumn[0]);
String picturePath = SelectedCursor.getString(columnIndex);
SelectedCursor.close();
// Drawable d = new BitmapDrawable(getResources(),BitmapFactory.decodeFile(picturePath));
// btnOpenGalery .setImageBitmap(d);
imgButton.setImageBitmap(BitmapFactory.decodeFile(picturePath));
Toast.makeText(getApplicationContext(), picturePath, Toast.LENGTH_SHORT).show();
}
}
我的XML
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical" >
<ImageButton
android:id="@+id/AddPic"
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_gravity="center"
android:gravity="left"
android:onClick="AddPic"
android:background="@drawable/ic_launcher" />
</LinearLayout>
如果要使用sharedPreferences,请使用以下代码:
SharedPreferences sharedPreferences;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sharedPreferences = getSharedPreferences("data", context.MODE_PRIVATE);
//Adding the picture bit
imgButton = (ImageButton) findViewById(R.id.AddPic);
imgButton.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent GaleryIntent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(GaleryIntent, RESULT_LOAD_IMAGE);
}
});
if(sharedPreferences!=null)
String path = sharedPreferences.getString("path", null);
if(path!=null)
imgButton.setImageBitmap(BitmapFactory.decodeFile(path));
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri SelectedImage = data.getData();
String[] FilePathColumn = {MediaStore.Images.Media.DATA };
Cursor SelectedCursor = getContentResolver().query(SelectedImage, FilePathColumn, null, null, null);
SelectedCursor.moveToFirst();
int columnIndex = SelectedCursor.getColumnIndex(FilePathColumn[0]);
String picturePath = SelectedCursor.getString(columnIndex);
SelectedCursor.close();
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString("path", picturePath);
editor.commit();
// Drawable d = new BitmapDrawable(getResources(),BitmapFactory.decodeFile(picturePath));
// btnOpenGalery .setImageBitmap(d);
imgButton.setImageBitmap(BitmapFactory.decodeFile(picturePath));
Toast.makeText(getApplicationContext(), picturePath, Toast.LENGTH_SHORT).show();
}
}
本文向大家介绍android使用SharedPreferences进行数据存储,包括了android使用SharedPreferences进行数据存储的使用技巧和注意事项,需要的朋友参考一下 很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2s
本文向大家介绍Android SharedPreferences存储用法详解,包括了Android SharedPreferences存储用法详解的使用技巧和注意事项,需要的朋友参考一下 先看Demo运行效果 SharedPreferences详解 SharedPreferences是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activity状态,Activity暂停
我的问题是:当我使用活动存储时,如何从URL上传图像。我在Stackoverflow中使用了来自其他帖子的代码,但传递了model方法,即我需要存储在表中的param。奇怪的是,我收到了下一个错误: 但是当我从这个模型重新加载show视图时,图像显示为存储并部署在我的posts视图中。 在这里我的代码后模型: 这是我在控制器的编辑操作中的代码: 我得到了以下链接,其中谈到了从URL上传图像的机会,
本文向大家介绍Android本地存储SharedPreferences详解,包括了Android本地存储SharedPreferences详解的使用技巧和注意事项,需要的朋友参考一下 Android本地存储SharedPreferences详解 存储位置 SharedPreferences数据保存在: /data /data/<package_name> /shared_prefs 文件夹下,以X
本文向大家介绍Android使用SharedPreferences存储数据的实现方法,包括了Android使用SharedPreferences存储数据的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android使用SharedPreferences存储数据的实现方法。分享给大家供大家参考,具体如下: 编辑短信的时候,突然接收到电话,通过这种方式可以保存之前已经编辑好的短信内容
本文向大家介绍Android SharedPreferences存储的正确写法,包括了Android SharedPreferences存储的正确写法的使用技巧和注意事项,需要的朋友参考一下 SharedPreferences 特点 即便是Android小白都知道的SharedPreferences的用法,这是保存数据最简便的方法,但是不处理好的话后期维护将是一个巨大的坑。那么该如何处理好Shar