文档章节

调用android系统相机拍照并保存

ForingY
 ForingY
发布于 2016/08/01 14:16
字数 299
阅读 28
收藏 0

钉钉、微博极速扩容黑科技,点击观看阿里云弹性计算年度发布会!>>>

import java.io.BufferedOutputStream;  
import java.io.File;  
import java.io.FileNotFoundException;  
import java.io.FileOutputStream;  
import java.io.IOException;  
import java.util.Calendar;  
import java.util.Locale;  
  
import android.app.Activity;  
import android.content.Intent;  
import android.graphics.Bitmap;  
import android.os.Bundle;  
import android.os.Environment;  
import android.provider.MediaStore;  
import android.text.format.DateFormat;  
import android.util.Log;  
import android.view.View;  
import android.view.View.OnClickListener;  
import android.widget.Button;  
import android.widget.ImageView;  
import android.widget.Toast;  
  
public class MyCameraActivity extends Activity {  
    /** Called when the activity is first created. */  
    private Button button;  
  
    @Override  
    public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.main);  
        button = (Button) findViewById(R.id.button);  
        button.setOnClickListener(new OnClickListener() {  
  
            @Override  
            public void onClick(View v) {  
                // TODO Auto-generated method stub  
                Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);  
  
                startActivityForResult(intent, 1);  
            }  
        });  
    }  
  
    @Override  
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
        // TODO Auto-generated method stub  
        super.onActivityResult(requestCode, resultCode, data);  
        if (resultCode == Activity.RESULT_OK) {  
            String sdStatus = Environment.getExternalStorageState();  
            if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) { // 检测sd是否可用  
                Log.i("TestFile",  
                        "SD card is not avaiable/writeable right now.");  
                return;  
            }  
            String name = new DateFormat().format("yyyyMMdd_hhmmss",Calendar.getInstance(Locale.CHINA)) + ".jpg";     
            Toast.makeText(this, name, Toast.LENGTH_LONG).show();  
            Bundle bundle = data.getExtras();  
            Bitmap bitmap = (Bitmap) bundle.get("data");// 获取相机返回的数据,并转换为Bitmap图片格式  
          
            FileOutputStream b = null;  
           //???????????????????????????????为什么不能直接保存在系统相册位置呢????????????  
            File file = new File("/sdcard/myImage/");  
            file.mkdirs();// 创建文件夹  
            String fileName = "/sdcard/myImage/"+name;  
  
            try {  
                b = new FileOutputStream(fileName);  
                bitmap.compress(Bitmap.CompressFormat.JPEG, 100, b);// 把数据写入文件  
            } catch (FileNotFoundException e) {  
                e.printStackTrace();  
            } finally {  
                try {  
                    b.flush();  
                    b.close();  
                } catch (IOException e) {  
                    e.printStackTrace();  
                }  
            }  
            ((ImageView) findViewById(R.id.imageView)).setImageBitmap(bitmap);// 将图片显示在ImageView里  
        }  
    }  
}  

切记加权限 此时,页面上显示的图片是原图的缩略图,可以自行去手机的相册查看

ForingY
粉丝 23
博文 272
码字总数 156129
作品 0
杭州
程序员
私信 提问
加载中
请先登录后再评论。

暂无文章

Day 4 掌握pip命令,管理好你的Python资源包

在文章底部你的每一次随手 → 分享、点赞、在看都很重要,感谢!!! 精华推荐:精选20篇满足你对前沿理论、技术和经验总结 开源优测专辑集合: 1. 前沿理论、工具和趋势总结 2. 快学Python3...

苦叶子
07/02
0
0
Motan中使用异步RPC接口

这周六参加了一个美团点评的技术沙龙,其中一位老师在介绍他们自研的 RPC 框架时提到一点:RPC 请求分为 sync,future,callback,oneway,并且需要遵循一个原则:能够异步的地方就不要使用同...

Java公众号_Kirito的技术分享
2017/12/27
3
0
JS逆向 | 防脱发的秘诀

作者:Jerryning 公众号:Python编程与实战 hello,大jia好,又到了练手时间了,这是我给大伙分享的第…篇逆向文章。前面的几篇猛戳下面: Python爬虫之JS逆向入门篇 JS逆向之新榜登录 JS逆向...

州的先生
2019/08/27
0
0
python练习-001

从今天起,我们进入python的学习,会根据每天一个案例的方法,由浅入深的学习python。 python学习对于初学者来说,最大的问题在于不知道自己学了能做啥,每天敲这些无聊的代码很枯燥,所以学...

致码高胜寒
2019/01/16
11
0
yolov5 简单教程

该库代表Ultralytics对未来对象检测方法的开源研究,并结合了以前的YOLO库https://github.com/ultralytics/yolov3在自定义数据集上训练了数千个模型而得到的最佳实践。**所有代码和模型都在积...

人工智能遇见磐创
51分钟前
12
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部