简单的 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 布局页面

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical"    >    <ScrollView        android:layout_width="fill_parent"        android:layout_height="fill_parent"        >        <LinearLayout            android:layout_width="fill_parent"            android:layout_height="fill_parent"            android:orientation="vertical"            >            <Button                android:id="@+id/doPhoto"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:padding="10dp"                android:layout_marginBottom="10dp"                android:text="拍照"                android:onClick="doPhoto"                />            <TextView                android:id="@+id/showContent"                android:layout_width="fill_parent"                android:layout_height="wrap_content"                android:layout_marginBottom="10dp"                />            <ImageView                android:id="@+id/showPhoto"                android:layout_width="fill_parent"                android:layout_height="250dp"                android:scaleType="centerCrop"                android:src="@drawable/add"                android:layout_marginBottom="10dp"                />        </LinearLayout>    </ScrollView></LinearLayout>

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

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




更多相关文章

  1. Android文件关联
  2. Android(安卓)tips2
  3. Android(安卓)Studio中集成OpenCV——只需4步
  4. Java編程和Android編程的區別
  5. android中常见的错误及解决办法
  6. 在Android中实现文件读写
  7. 使用Android(安卓)Studio打包指定名称的Apk
  8. Pycharm安装PyQt5的详细教程
  9. NPM 和webpack 的基础使用

随机推荐

  1. 写信息的界面
  2. Android(安卓)入门笔记 之 网址
  3. 初步了解Android
  4. 分享android技术牛人博客
  5. android学习笔记
  6. Android(安卓)studio build inished with
  7. Android(安卓)activity的生命周期
  8. Android:解决列表滚动时背景色变黑的方法
  9. Android(安卓)文件实现断点上传
  10. android 对话框全屏