SharedPreferences(保存图片)

来源:互联网 发布:js设置div滚动条位置 编辑:程序博客网 时间:2024/04/30 18:44
/**
     * 将Bitmap转换成字符串保存至SharedPreferences
     * 
     * 注意: 在压缩图片至输出流时,不要选择CompressFormat.JPEG而该是PNG,否则会造成图片有黑色背景
     */
    private void saveBitmapToSharedPreferences() {
            //得到要保存的图片
        Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
                R.drawable.as);
        // 第一步:将Bitmap压缩至字节数组输出流ByteArrayOutputStream
        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
        bitmap.compress(CompressFormat.PNG, 80, byteArrayOutputStream);
        // 第二步:利用Base64将字节数组输出流中的数据转换成字符串String
        byte[] byteArray = byteArrayOutputStream.toByteArray();
        String image = new String(Base64.encodeToString(byteArray,
                Base64.DEFAULT));
        // 第三步:将String保持至SharedPreferences
     SharedPreferences spf = getSharedPreferences("testSP", MODE_APPEND);
        Editor editor = spf.edit();
        editor.putString("image", image);
        editor.commit();
    }
-------------------------------------------------------------------------------------------------------------------------------------
/**
     * 从SharedPreferences中取出Bitmap,显示在ImageView中
     */
    private void getBitmapFromSharedPreferences() {
       SharedPreferences spf = getSharedPreferences("testSP", MODE_APPEND);
        // 第一步:取出字符串形式的Bitmap
        String image = spf.getString("image", "");
        // 第二步:利用Base64将字符串转换为ByteArrayInputStream
        byte[] byteArray = Base64.decode(image, Base64.DEFAULT);
        ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(
                byteArray);
        // 第三步:利用ByteArrayInputStream生成Bitmap
        Bitmap bitmap = BitmapFactory.decodeStream(byteArrayInputStream);
        //设置图片到imageview
        mImageView.setImageBitmap(bitmap);
    }
0 0
原创粉丝点击