亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Android實現靜默拍照功能

瀏覽:8日期:2022-09-23 14:36:51

本文實例為大家分享了Android實現靜默拍照功能的具體代碼,供大家參考,具體內容如下

1.申請權限(6.0以后要動態申請)

<uses-permission android:name='android.permission.CAMERA' /><uses-permission android:name='android.permission.WRITE_EXTERNAL_STORAGE'/><uses-permission android:name='android.permission.READ_EXTERNAL_STORAGE'/>

2.創建相機工具類 CameraPreview:

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { private SurfaceHolder mHolder; private Camera mCamera; public CameraPreview(Context context, Camera camera) { super(context); //初始化Camera對象 mCamera = camera; //得到SurfaceHolder對象 mHolder = getHolder(); //添加回調,得到Surface的三個聲明周期方法 mHolder.addCallback(this); // deprecated setting, but required on Android versions prior to 3.0 mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); } @Override public void surfaceCreated(SurfaceHolder holder) { try { //設置預覽方向 mCamera.setDisplayOrientation(90); //把這個預覽效果展示在SurfaceView上面 mCamera.setPreviewDisplay(holder); //開啟預覽效果 mCamera.startPreview(); } catch (IOException e) {// Log.d(TAG, 'Error setting camera preview: ' + e.getMessage()); } } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { if (holder.getSurface() == null) { return; } //停止預覽效果 mCamera.stopPreview(); //重新設置預覽效果 try { mCamera.setPreviewDisplay(mHolder); } catch (IOException e) { e.printStackTrace(); } mCamera.startPreview(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { }}

3.創建xml文件 (要想用戶無感拍照,可把視圖寬高調為0.1dp或者隱藏在別的頁面之下):

<LinearLayout xmlns:android='http://schemas.android.com/apk/res/android' android:layout_width='match_parent' android:layout_height='match_parent' android:orientation='vertical'> <FrameLayout android: android:layout_width='match_parent' android:layout_height='500dp'> </FrameLayout></LinearLayout>

4.主類實現靜默拍照:

public class CameraActivity extends BaseActivity{ private FrameLayout cameraFrame; private Camera mCamera; private TextView cameraTv; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_camera); cameraFrame = (FrameLayout) findViewById(R.id.camera_frame); cameraTv = (TextView) findViewById(R.id.camera_tv); int numberOfCameras = Camera.getNumberOfCameras();// 獲取攝像頭個數 //遍歷攝像頭信息 for (int cameraId = 0; cameraId < numberOfCameras; cameraId++) { Camera.CameraInfo cameraInfo = new Camera.CameraInfo(); Camera.getCameraInfo(cameraId, cameraInfo); if (cameraInfo.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {//前置攝像頭 mCamera = Camera.open(cameraId);//打開攝像頭 } } CameraPreview mPreview = new CameraPreview(this, mCamera); cameraFrame.addView(mPreview); new Thread(new Runnable() { @Override public void run() { try { Thread.sleep(1000); // 設置1秒后自動拍照,可調節 //得到照相機的參數 Camera.Parameters parameters = mCamera.getParameters(); //圖片的格式 parameters.setPictureFormat(ImageFormat.JPEG); //預覽的大小是多少 parameters.setPreviewSize(800, 400); //設置對焦模式,自動對焦 parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); //對焦成功后,自動拍照 mCamera.autoFocus(new Camera.AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { if (success) {//獲取照片mCamera.takePicture(null, null, mPictureCallback); } } }); } catch (InterruptedException e) { e.printStackTrace(); } } }).start(); }); } @Override protected void onStart() { super.onStart(); } //獲取照片中的接口回調 Camera.PictureCallback mPictureCallback = new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { FileOutputStream fos = null; String mFilePath = Environment.getExternalStorageDirectory().getPath() + File.separator + 'tt005.png'; //文件 File tempFile = new File(mFilePath); try { // fos = new FileOutputStream(tempFile); fos.write(data); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { //實現連續拍多張的效果// mCamera.startPreview();// if (fos != null) {// try {// fos.close();// } catch (IOException e) {// e.printStackTrace();// }// } } } };}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 久优草 | 日本欧美一区二区三区免费不卡 | 欧美成人精品不卡视频在线观看 | 韩国特黄毛片一级毛片免费 | 日本高清xxx | 边做边摸边揉的免费视频 | 日韩精品一区二区三区高清 | 麻豆视频在线免费观看 | 狠狠色噜噜综合社区 | 成人做爰网站免费看 | 一级特黄aaa大片在线观看视频 | 久久精品视频免费看 | 美女精品在线 | 玖玖草在线观看 | 国产亚洲精品成人久久网站 | 手机免费看黄在线高清视频 | 欧美日本韩国国产 | 免费看黄色网页 | 亚洲欧美日韩中文高清一 | 中国女人真人一级毛片 | 日本精品一区二区三本中文 | 午夜骚影 | 欧美一区二区三区东南亚 | 香蕉视频在线观 | 亚洲国产欧美国产第一区二区三区 | 最新国产在线播放 | 天天撸影院 | 国产精品视频永久免费播放 | 五月天婷婷网亚洲综合在线 | 朴妮唛禁福利视频在线 | 性大片免费观看yy | 国产免费一级精品视频 | 99热这里都是国产精品 | 嫩草免费视频 | 亚洲草逼视频 | 国产91福利在线精品剧情尤物 | 一区二区免费播放 | 国产原创麻豆精品视频 | 免费人成黄页在线观看视频国产 | 亚洲美女色在线欧洲美女 | 美女天堂网 |