Android 图板之保存图像

(1)为了能适应多种屏幕尺寸的手机,我们在创建图像的时候就要根据用户手机屏幕的宽高像素来创建。

(2)该软件将把图形保存到sdcard中,在保存之前,需要检测sdcard是否存在,是否可写入。如通过以上检查,就保存图像。

首先,我们应该检测sdcard的状态,如果不可写入,则给出提示:

    public void saveBitmap()
    {
        String state = Environment.getExternalStorageState();

        if (Environment.MEDIA_MOUNTED.equals(state))
        {
            saveToSdcard();
        }
        else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state))
        {
            Toast.makeText(this.context,
                    getResources().getString(R.string.tip_sdcard_is_read_only),
                    Toast.LENGTH_LONG).show();
        }
        else
        {
            Toast.makeText(
                    this.context,
                    getResources().getString(
                            R.string.tip_sdcard_is_not_available),
                    Toast.LENGTH_LONG).show();
        }
    }

当sdcard存在且可写入时,我们就把图像保存到sd卡中:

    private void saveToSdcard()
    {
        File sdcard_path = Environment.getExternalStorageDirectory();
        String myFloder = getResources().getString(
                R.string.folder_name_in_sdcard);
        File paintpad = new File(sdcard_path + "/" + myFloder + "/");
        try
        {
            if (!paintpad.exists())
            {
                paintpad.mkdirs();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }

        String timeStamp = (DateFormat.format("yyyy.MM.dd.hh.mm.ss",
                new java.util.Date())).toString();
        String suffixName = ".png";

        String fullPath = "";
        fullPath = sdcard_path + "/" + myFloder + "/" + timeStamp + suffixName;
        try
        {
            Toast.makeText(this.context,
                    getResources().getString(R.string.tip_save_to) + fullPath,
                    Toast.LENGTH_LONG).show();
            bitmap.compress(Bitmap.CompressFormat.PNG, 100,
                    new FileOutputStream(fullPath));
        }
        catch (FileNotFoundException e)
        {
            Toast.makeText(
                    this.context,
                    getResources().getString(R.string.tip_sava_failed)
                            + fullPath, Toast.LENGTH_LONG).show();
            e.printStackTrace();
        }
    }
时间: 2024-11-03 22:11:39

Android 图板之保存图像的相关文章

Android学习笔记-保存数据的实现方法1

Android开发中,有时候我们需要对信息进行保存,那么今天就来介绍一下,保存文件到内存,以及SD卡的一些操作,及方法,供参考. 第一种,保存数据到内存中: //java开发中的保存数据的方式 public static boolean saveUserInfo(String username,String password){ File file = new File("/data/data/com.ftf.login/info.txt"); try { FileOutputStre

Android使用SharedPreferences保存对象

核心原理: 对象序列化 步骤 1.要保存的对象实现序列化Serializable 2.将序列化的对象保存String(本文的做法是保存为byte数组在转为16进制的String类型保存起来) 3.将保存的String反序列化为对象 下面是完整代码 步骤1.要保存的对象实现序列化Serializable public class Sertest implements Serializable{ private String name; private int age; } 步骤2.将序列化的对象保

Android图像格式类及图像转换方法

Android图像格式类及图像转换方法介绍 一款软件的开发和图像密切相关,特别是移动应用程序,在视觉效果等方面是至关重要的,因为这直接关系 到用户的体验效果.在Android程序开发的过程中,了解存在哪些图像格式类(ImageFormat.PixelFormat及BitmapConfig等)及图像(JPG.PNG及 BMP等)的转换方法,对以后的开发多多少少会有些帮助. 关于图像格式类,介绍以下三个:ImageFormat.PixelFormat及BitmapConfig. 1.ImageFor

保存图像到数据库

using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.UI;using System.Web.UI.WebControls;using System.IO;//流 public partial class 保存图像到数据库_1_增加 : System.Web.UI.Page{ protected void Page_Load(object sender,

openCV—Python(2)—— 载入、显示和保存图像

一.函数简单介绍 1.imread-读取图像 函数原型:imread(filename, flags=None) filename:读取的图像路径名:比如:"H:\img\lena.jpg". flags:彩色图or灰色图,1:表示彩色图.0:表示灰色图. 2.imshow-显示图像 函数原型:imshow(winname, mat) winname:窗体名字.比如:"Lena". mat:要显示的图像矩阵. 3.imwrite-保存图像 函数原型:imwrite(

Android——配置文件的保存SharedPreferences进行数据存储

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友.对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存.如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数.使用SharedPreferen

C++保存图像数据至BMP文件

BOOL savebitmap(const BITMAPINFOHEADER* pHeader, const char* data, int nImgW, int nImgH, const char* filename) { BITMAPINFOHEADER bmiHdr; //定义信息头 bmiHdr.biSize = sizeof(BITMAPINFOHEADER); bmiHdr.biWidth = nImgW; bmiHdr.biHeight = nImgH; bmiHdr.biPlan

【OpenPose-Windows】运行OpenposeDemo.exe 如何保存图像运行结果及关节点信息

跑过很多次openposeDemo了,不管是video.Webcam还是Images,都是运行结果一闪而过,然而我们所要的肯定不是只看一下运行结果就完事的,很多情况下,我们都希望能够把运行结果的图像.关节点坐标信息.人数统计等数据信息全部保存下来,以便于我们对openpose进行更加深入的分析和应用,那么这篇博客的作用就是告诉大家如何把这些运行结果保存下来. openposeDemo的程序运行结果的保存,其实有两种方式,一种便是直接使用官方Github的openpose demo的1.0.1的发

Android——文件的保存和读取

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中.可以使用Context.MODE_APPEND Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件. Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件. MODE_WOR