Android-打开相机拍照并跳转
来源:互联网 发布:mysql 删除表恢复 编辑:程序博客网 时间:2024/05/22 00:33
目标效果;
点金一个按钮打开相机,拍照后显示在另一个activity中,因为控件比较简单,就不贴xml页面的代码了。
1.MainActivity.java页面,拍照返回后,将bitmap转变为字符串存到文件中。
package com.example.weixu.camera;import android.content.Context;import android.content.Intent;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;import android.graphics.Bitmap;import android.graphics.Bitmap.CompressFormat;import android.graphics.BitmapFactory;import android.net.Uri;import android.os.Environment;import android.provider.MediaStore;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Base64;import android.view.View;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;public class MainActivity extends AppCompatActivity { private static int REQUEST_CAMERA=1; private String mFilePath; private Bitmap bitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mFilePath = Environment.getExternalStorageDirectory().getPath();// 获取SD卡路径 mFilePath = mFilePath + "/" + "temp.png";// 指定路径 } public void open(View view){ switch (view.getId()){ case R.id.btOpenCamera: Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);// 启动系统相机 Uri photoUri = Uri.fromFile(new File(mFilePath)); // 传递路径 intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);// 更改系统默认存储路径 startActivityForResult(intent, REQUEST_CAMERA); break; } } @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (resultCode == RESULT_OK) { // 如果返回数据 if (requestCode == REQUEST_CAMERA) { FileInputStream fis = null; try { fis = new FileInputStream(mFilePath); // 根据路径获取数据 bitmap = BitmapFactory.decodeStream(fis); //获取图片 new Thread(new Runnable() { @Override public void run() { intentBitmap(); } }).start(); Intent intent=new Intent(MainActivity.this,DynamicActivity.class); startActivity(intent); } catch (FileNotFoundException e) { e.printStackTrace(); }finally{ try{ fis.close();// 关闭流 }catch(IOException e) { e.printStackTrace(); } } } } } //传递bitmap private void intentBitmap() { //把Bitmap转码成字符串 ByteArrayOutputStream baos = new ByteArrayOutputStream(); bitmap.compress(CompressFormat.PNG, 50,baos); String imageBase64 = new String (Base64.encode(baos.toByteArray(), 0)); //把字符串存到SharedPreferences里面 SharedPreferences prePicture = getSharedPreferences("Picture", Context.MODE_PRIVATE); Editor editor = prePicture.edit(); editor.putString("cameraImage", imageBase64); editor.commit(); }}
2.DynamicActivity.java页面获取字符串并转变为bitmap并显示。
package com.example.weixu.camera;import android.content.Context;import android.content.SharedPreferences;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.util.Base64;import android.widget.ImageView;import java.io.ByteArrayInputStream;public class DynamicActivity extends AppCompatActivity { private ImageView ivDynamicPicture; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_dynamic); ivDynamicPicture= (ImageView) findViewById(R.id.ivDynamicPicture); getPicture(); } private void getPicture() { //获取字符串 SharedPreferences sPreferences = getSharedPreferences("Picture", Context.MODE_PRIVATE); String imageBase64 = sPreferences.getString("cameraImage", ""); //把字符串解码成Bitmap对象 byte[] byte64 = Base64.decode(imageBase64, 0); ByteArrayInputStream bais = new ByteArrayInputStream(byte64); Bitmap bitmap = BitmapFactory.decodeStream(bais); //显示图片 ivDynamicPicture.setImageBitmap(bitmap); }}
源码:点击打开链接
0 0
- Android-打开相机拍照并跳转
- android打开相机拍照
- android 打开系统相机拍照并保存文件,显示图片。
- Android-打开系统相机并拍照两种显示方式。
- android打开相册选取图片或打开相机拍照并进行裁剪
- Qt for Android调用原生接口打开相机拍照并存储照片
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- android调用系统相机拍照并裁剪
- Android启动相机拍照并返回图片
- 调用android系统相机拍照并保存
- 调用android系统相机拍照并保存
- Android中相机拍照并获取路径
- Android调用相机拍照并添加水印
- Android启动相机拍照并返回图片
- 网易
- caffe-特征提取
- Doxygen Special Commands
- Mac下如何使用终端开启关闭Tomcat
- POJ2796---Feel Good(前缀和+单调栈维护)
- Android-打开相机拍照并跳转
- UVALive-7225 Summation and Divisor【Gcd+思维】
- TensorFlow-MNSIT进阶篇代码
- (转)FloatingActionButton 完全解析[Design Support Library(2)]
- LeetCode : Isomorphic Strings
- AWK学习笔记汇总(The_AWK_Programming_Language)
- 图像融合
- K-近邻算法基础实例注解
- Matlab 的 disp函数