国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

更多QQ空间微信QQ好友腾讯朋友复制链接
您的位置:首頁(yè)/技術(shù)文章
文章詳情頁(yè)

Android實(shí)現(xiàn)靜默拍照功能

【字号: 作者:豬豬瀏覽:2日期:2022-09-23 14:36:51

本文實(shí)例為大家分享了Android實(shí)現(xiàn)靜默拍照功能的具體代碼,供大家參考,具體內(nèi)容如下

1.申請(qǐng)權(quán)限(6.0以后要?jiǎng)討B(tài)申請(qǐng))

<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.創(chuàng)建相機(jī)工具類 CameraPreview:

public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback { private SurfaceHolder mHolder; private Camera mCamera; public CameraPreview(Context context, Camera camera) { super(context); //初始化Camera對(duì)象 mCamera = camera; //得到SurfaceHolder對(duì)象 mHolder = getHolder(); //添加回調(diào),得到Surface的三個(gè)聲明周期方法 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 { //設(shè)置預(yù)覽方向 mCamera.setDisplayOrientation(90); //把這個(gè)預(yù)覽效果展示在SurfaceView上面 mCamera.setPreviewDisplay(holder); //開啟預(yù)覽效果 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; } //停止預(yù)覽效果 mCamera.stopPreview(); //重新設(shè)置預(yù)覽效果 try { mCamera.setPreviewDisplay(mHolder); } catch (IOException e) { e.printStackTrace(); } mCamera.startPreview(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { }}

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

<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.主類實(shí)現(xiàn)靜默拍照:

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();// 獲取攝像頭個(gè)數(shù) //遍歷攝像頭信息 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); // 設(shè)置1秒后自動(dòng)拍照,可調(diào)節(jié) //得到照相機(jī)的參數(shù) Camera.Parameters parameters = mCamera.getParameters(); //圖片的格式 parameters.setPictureFormat(ImageFormat.JPEG); //預(yù)覽的大小是多少 parameters.setPreviewSize(800, 400); //設(shè)置對(duì)焦模式,自動(dòng)對(duì)焦 parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); //對(duì)焦成功后,自動(dòng)拍照 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(); } //獲取照片中的接口回調(diào) 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 { //實(shí)現(xiàn)連續(xù)拍多張的效果// mCamera.startPreview();// if (fos != null) {// try {// fos.close();// } catch (IOException e) {// e.printStackTrace();// }// } } } };}

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 精品中文字幕在线 | 欧美zoofilia杂交videos | 极品国产在线 | 99久久国语露脸精品对白 | 国产精品久久久久久久久久久威 | 国产91精品一区二区 | 九七在线视频 | 精品老司机在线视频香蕉 | 天堂va欧美ⅴa亚洲va一国产 | 欧美成人精品 | 欧美成人免费香蕉 | 亚洲精品高清国产麻豆专区 | 日韩视频在线观看 | 91高清免费国产自产 | 一级毛片播放 | 成人国产永久福利看片 | 免费看一片 | 亚洲欧洲日产国码一级毛片 | 全部aⅴ极品视觉盛宴精品 全部免费a级毛片 | 欧美成人全部费免网站 | 一级中国乱子伦视频 | 视频网18免费 | 综合九九| 天干夜天天夜天干天ww | 老师张开腿让我捅 | 手机在线观看黄色网址 | 丁香五香天堂 | 手机看片国产精品 | 自拍网在线 | 成人毛片在线播放 | 欧美日韩在线视频一区 | 日韩高清免费观看 | 国产精品jvid在线观看 | 亚洲美色综合天天久久综合精品 | 很黄的网站在线观看 | 亚洲成人一级 | 亚洲精品综合一二三区在线 | 久久精品亚洲乱码伦伦中文 | 日韩专区亚洲综合久久 | 国产国产成人人免费影院 | 精品毛片免费看 |