Base64ImageActivity.java
package powerise.demo01;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import org.apache.commons.codec.binary.Base64;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
public class Base64ImageActivity extends Activity {
private Button btn_save = null;
private ImageView iv_image = null;
private ImageView iv_image2 = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.base64image);
btn_save = (Button) findViewById(R.id.btn_save);
iv_image = (ImageView) findViewById(R.id.iv_image);
iv_image2 = (ImageView) findViewById(R.id.iv_image2);
// Field[] fields = R.drawable.class.getDeclaredFields();
// for (Field field : fields) {
// System.out.println(field.getName());
// }
getImageInfo();
iv_image.setImageResource(R.drawable.blrise);
btn_save.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
saveImage();
getImageInfo();
}
});
saveImage();
}
protected void getImageInfo() {
SharedPreferences mSharedPreferences = getSharedPreferences("image", Context.MODE_PRIVATE);
String imageBase64 = mSharedPreferences.getString("imageBase64", "");
byte[] base64Bytes = Base64.decodeBase64(imageBase64.getBytes());
ByteArrayInputStream bais = new ByteArrayInputStream(base64Bytes);
iv_image2.setImageDrawable(Drawable.createFromStream(bais, "image"));
}
private void saveImage() {
SharedPreferences mSharedPreferences = getSharedPreferences("image", Context.MODE_PRIVATE);
Editor mEditor = mSharedPreferences.edit();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
((BitmapDrawable) iv_image.getDrawable()).getBitmap().compress(CompressFormat.JPEG, 50, baos);
String imageBase64 = new String(Base64.encodeBase64(baos.toByteArray()));
mEditor.putString("imageBase64", imageBase64);
mEditor.commit();
}
}
base64image.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="结果:" />
<ImageView
android:id="@+id/iv_image"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn_save"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="保存" />
<ImageView
android:id="@+id/iv_image2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"/>
</LinearLayout>
分享到:
相关推荐
在这个案例中,"sharedPreferences存储"涉及到如何使用SharedPreferences来保存和读取String、int类型的数据以及图片的存储。 1. **String和int类型的存储** - 使用`getSharedPreferences()`方法创建...
Android提供了多种方式来保存应用程序的数据,包括SharedPreferences、内存存储、SD卡存储以及SQLite数据库。这四种存储方式各有特点,适用于不同的场景需求。 1. SharedPreferences: SharedPreferences是一种轻量...
使用`getSharedPreferences()`方法创建一个SharedPreferences对象,然后通过`edit()`方法获取一个`SharedPreferences.Editor`实例进行修改,最后调用`apply()`或`commit()`来保存更改。`apply()`是异步的,不返回...
3. **保存到Shared Preferences**: 创建一个`SharedPreferences`实例,使用`edit()`方法开始编辑,然后使用`putString()`将Base64字符串保存,最后调用`commit()`或`apply()`来提交更改。 ```java ...
本文将详细介绍如何在Android系统中实现这一功能,主要探讨三种常用的数据存储方式:SharedPreferences、文件存储以及SQLite数据库,并以`MyLoginDatabase`为例,讨论如何使用SQLite数据库来保存用户登录信息。...
本章节将探讨如何将数据保存到文件,主要关注内部存储的方式。Android提供了多种数据存储方案,包括文件、SharedPreferences、SQLite数据库、内容提供者以及网络存储。在此,我们将详细解析内部存储的使用方法,并...
- **保存到SharedPreferences**:在接收到服务器返回的Cookie后,将其序列化为字符串,然后使用SharedPreferences的`edit().putString()`方法存入。 4. **处理Cookie过期**:Cookie通常有生命周期,过期后服务器...
然而,SharedPreferences并不适合存储复杂的数据类型,如自定义对象或图片。如果需要存储这类数据,通常需要先将它们序列化,例如使用JSON或Base64编码,然后以字符串形式保存。在读取时再反序列化回原来的对象。 ...
SharedPreferences是Android中的轻量级数据存储方式,用于保存应用的配置数据。EasyAndroid提供了友好的API,让读写SharedPreferences的操作更加简洁。 3. **反射机制**: 反射在Android开发中常用于运行时获取类...
8. **服务端接收**:服务端接收到图片数据后,通常会将其保存到指定的目录,并返回一个保存成功与否的响应。可以是JSON格式或其他格式,包含文件的URL或其他相关信息。 9. **本地保存**:在Android设备上,如果需要...
本文将针对初学者,详细介绍如何在安卓系统中实现数据的保存、装载和删除,帮助你理解安卓的数据管理机制。 一、Android 数据存储方式 1. SharedPreferences:适合保存简单的键值对数据,如用户偏好设置。使用`...
当用户点击这些按钮时,将标志保存到SharedPreferences中,表示用户已经看过引导界面。 代码示例: ```java // 在引导界面Activity的onCreate方法中 SharedPreferences prefs = getSharedPreferences("APP_PREFS",...
本教程主要探讨了三种常用的数据保存技术:SharedPreferences、文件系统以及SQLite数据库。这些方法各有优势,适用于不同的场景。以下是对每种技术的详细说明: 1. SharedPreferences: SharedPreferences是Android...
需要注意处理相机权限,并处理拍照后的图片保存和回调。 四、从本地相册选择图片 同样,可以通过Intent.ACTION_PICK来打开本地相册。用户选择图片后,通过onActivityResult方法接收选择的图片路径。可以使用...
保存图片时,可以将Bitmap对象转换成字节数组: ```kotlin val bitmap: Bitmap = ... // 获取Bitmap val bytes = bitmap.toByteArray() EasyPreferences.saveBytes("imageKey", bytes) ``` 恢复时,再从字节...
4. **保存图片到SD卡**:通常,我们需要将临时图片文件保存到应用的私有目录或公共可访问的SD卡目录。可以使用`ContentResolver`的`openInputStream()`方法获取图片输入流,然后通过`FileOutputStream`将其写入...
在用户填写完信息并点击返回时,我们可以将这些信息保存到SharedPreferences中。例如: ```java SharedPreferences preferences = getSharedPreferences("MyPreferences", MODE_PRIVATE); SharedPreferences.Editor...
4. **图片保存与加载**:保存用户输入的文字和图片,通常会用到SharedPreferences或者SQLite数据库来存储文字数据,而图片则需要保存到文件系统,如内部存储或外部存储。图片的路径可以作为键值对一同保存,以便于...