SharedPreferences 工具类------可存储图片

今天分享一个自己一直在使用SharedPreferences工具类,几乎可以满足开发中的全部需求了。
/**
 * SharedPreferences 工具类
 * 
 */
public class SPUtils {
	/**
	 * 将图片保存到SharedPreferences
	 * @param context
	 * @param preference
	 * @param key
	 * @param bitmap
	 */
	public static void saveBitmapToSharedPreferences(Context context, String preference,
													 String key, Bitmap bitmap){
		//第一步:将Bitmap压缩至字节数组输出流ByteArrayOutputStream
		ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();
		bitmap.compress(Bitmap.CompressFormat.PNG, 80, byteArrayOutputStream);
		//第二步:利用Base64将字节数组输出流中的数据转换成字符串String
		byte[] byteArray=byteArrayOutputStream.toByteArray();
		String imageString=new String(Base64.encodeToString(byteArray, Base64.DEFAULT));
		//第三步:将String保持至SharedPreferences
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		Editor editor = sharedPreferences.edit();
		editor.putString(key, imageString);
		editor.commit();
	}

	/**
	 * 从SharedPreferences取出图片
	 * @param context
	 * @param preference
	 * @param key
	 * @param defaultValue
	 * @return
	 */
	public static Bitmap getBitmapFromSharedPreferences(Context context,
														String preference, String key, String defaultValue){
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		//第一步:取出字符串形式的Bitmap
		String imageString=sharedPreferences.getString(key,defaultValue);
		if (imageString!=null){
			//第二步:利用Base64将字符串转换为ByteArrayInputStream
			byte[] byteArray= Base64.decode(imageString, Base64.DEFAULT);
			ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(byteArray);
			//第三步:利用ByteArrayInputStream生成Bitmap
			return BitmapFactory.decodeStream(byteArrayInputStream);
		}else{
			return null;
		}
	}
	/**
	 * 设置字符
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param value
	 */
	public static void setStringPreferences(Context context, String preference,
											String key, String value) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		Editor editor = sharedPreferences.edit();
		editor.putString(key, value);
		editor.commit();
	}

	/**
	 * 获取字符
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param defaultValue
	 * @return
	 */
	public static String getStringPreference(Context context,
											 String preference, String key, String defaultValue) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		return sharedPreferences.getString(key, defaultValue);
	}

	/**
	 * 设置长整型
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param value
	 */
	public static void setLongPreference(Context context, String preference,
										 String key, long value) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		Editor editor = sharedPreferences.edit();
		editor.putLong(key, value);
		editor.commit();
	}

	/**
	 * 获取长整型
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param defaultValue
	 * @return
	 */
	public static long getLongPreference(Context context, String preference,
										 String key, long defaultValue) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		return sharedPreferences.getLong(key, defaultValue);
	}

	/**
	 * 设置boolean类型
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param value
	 */
	public static void setBooleanPreferences(Context context,
											 String preference, String key, boolean value) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		Editor editor = sharedPreferences.edit();
		editor.putBoolean(key, value);
		editor.commit();
	}

	/**
	 * 获取长整型
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param defaultValue
	 * @return
	 */
	public static boolean getBooleanPreference(Context context,
											   String preference, String key, boolean defaultValue) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		return sharedPreferences.getBoolean(key, defaultValue);
	}

	/**
	 * 设置int
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param value
	 */
	public static void setIntPreferences(Context context, String preference,
										 String key, int value) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		Editor editor = sharedPreferences.edit();
		editor.putInt(key, value);
		editor.commit();
	}

	/**
	 * 获取int
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 * @param defaultValue
	 * @return
	 */
	public static int getIntPreference(Context context, String preference,
									   String key, int defaultValue) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		return sharedPreferences.getInt(key, defaultValue);
	}

	/**
	 * 删除一个属性
	 * 
	 * @param context
	 * @param preference
	 * @param key
	 */
	public static void deletePrefereceKey(Context context, String preference,
										  String key) {
		SharedPreferences sharedPreferences = context.getSharedPreferences(
				preference, Context.MODE_PRIVATE);
		Editor editor = sharedPreferences.edit();
		editor.remove(key);
		editor.commit();
	}

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值