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


    简单的 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




  • 相关阅读:
    Spring Boot----SpringData
    Spring Boot----整合MyBatis
    Spring Boot----整合jdbc和整合Durid数据源
    Spring Boot----嵌入式servlet和外置servlet使用
    大数据 CDH 5.8 安装
    Java 单例模式
    python 常用方法
    使用wepy开发微信小程序商城第三篇:购物车(布局篇)
    js时间戳转化成日期格式
    使用wepy开发微信小程序商城第二篇:路由配置和页面结构
  • 原文地址:https://www.cnblogs.com/zhouzme/p/5758512.html
Copyright © 2020-2023  润新知