简单的 Android 拍照并显示以及获取路径后上传

Activity 中的代码,我只贴出重要的事件部分代码

    public void doPhoto(View view)    {        destoryBimap();        String state = Environment.getExternalStorageState();        if (state.equals(Environment.MEDIA_MOUNTED)) {            Intent intent = new Intent("android.media.action.IMAGE_CAPTURE");            startActivityForResult(intent, 1);        } else {            Toast.makeText(MainActivity.this, "没有SD卡", Toast.LENGTH_LONG).show();        }    }    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data)    {        Uri uri = data.getData();        if (uri != null) {            this.photo = BitmapFactory.decodeFile(uri.getPath());        }        if (this.photo == null) {            Bundle bundle = data.getExtras();            if (bundle != null) {                this.photo = (Bitmap) bundle.get("data");            } else {                Toast.makeText(MainActivity.this, "拍照失败", Toast.LENGTH_LONG).show();                return;            }        }        FileOutputStream fileOutputStream = null;        try {            // 获取 SD 卡根目录            String saveDir = Environment.getExternalStorageDirectory() + "/meitian_photos";            // 新建目录            File dir = new File(saveDir);            if (! dir.exists()) dir.mkdir();            // 生成文件名            SimpleDateFormat t = new SimpleDateFormat("yyyyMMddssSSS");            String filename = "MT" + (t.format(new Date())) + ".jpg";            // 新建文件            File file = new File(saveDir, filename);            // 打开文件输出流            fileOutputStream = new FileOutputStream(file);            // 生成图片文件            this.photo.compress(Bitmap.CompressFormat.JPEG, 100, fileOutputStream);            // 相片的完整路径            this.picPath = file.getPath();            ImageView imageView = (ImageView) findViewById(R.id.showPhoto);            imageView.setImageBitmap(this.photo);        } catch (Exception e) {            e.printStackTrace();        } finally {            if (fileOutputStream != null) {                try {                    fileOutputStream.close();                } catch (Exception e) {                    e.printStackTrace();                }            }        }    }    /**     * 销毁图片文件     */    private void destoryBimap()    {        if (photo != null && ! photo.isRecycled()) {            photo.recycle();            photo = null;        }    }


Layout 布局页面

                        

其中的上传工具类请查看该文章:

http://blog.csdn.net/zhouzme/article/details/18952053




转载于:https://www.cnblogs.com/zhouzme/p/5758512.html

更多相关文章

  1. 一款常用的 Squid 日志分析工具
  2. GitHub 标星 8K+!一款开源替代 ls 的工具你值得拥有!
  3. RHEL 6 下 DHCP+TFTP+FTP+PXE+Kickstart 实现无人值守安装
  4. Linux 环境下实战 Rsync 备份工具及配置 rsync+inotify 实时同步
  5. android实现选择图片并压缩上传的功能
  6. Android(安卓)ADT 14 插件更新说明
  7. Android(安卓)ADB Shell命令大全
  8. Android地图密钥申请
  9. Linux 内核启动挂载android根文件系统过程分析

随机推荐

  1. 《第一行代码Android》学习总结第二章 Ac
  2. Tensorflow lite 编译Android(安卓)JNI C
  3. Android常用异步请求AsyncTask的美中不足
  4. Android开源计划-一周开发app
  5. 第十五章 Android的广播机制和BroadCast
  6. 在android设计中,如何在有限的界面上做布
  7. H5和android原生APP之间的区别,Android与H
  8. android平台上调试2款camera sensor
  9. 完全理解android事件分发机制
  10. 探索 Android(安卓)系统启动流程 - 当我