日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SurfaceView 拍照功能

發布時間:2025/3/14 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SurfaceView 拍照功能 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
//代碼部分

1
public class CameraActivity extends Activity 2 implements Callback, OnClickListener { 3 4 private static final int MENU_START = 1; 5 private static final int MENU_UP=2; 6 private static final int MENU_CANCEL=2; 7 private SurfaceView mSurfaceView; 8 private SurfaceHolder mSurfaceHolder; 9 private Camera mCamera; 10 private boolean mPreviewRunning; 11 private ImageView mImageView; 12 13 /** 14 * 拍照的回調接口 15 */ 16 PictureCallback mPictureCallback = new PictureCallback() { 17 18 public void onPictureTaken(byte[] data, Camera camera) { 19 Log.d("PictureCallback", "...onPictureTaken..."); 20 if (data != null) { 21 try { 22 DataOutputStream dataOutputStream = new DataOutputStream(new FileOutputStream("/sdcard/camera.jpg")); 23 dataOutputStream.write(data); 24 dataOutputStream.flush(); 25 } catch (Exception e) { 26 Log.e("PictureCallback", e.toString()); 27 } 28 Bitmap bitmap = BitmapFactory.decodeByteArray(data, 0, 29 data.length); 30 mImageView.setImageBitmap(bitmap); 31 mImageView.setVisibility(View.VISIBLE); 32 mSurfaceView.setVisibility(View.GONE); 33 if (mPreviewRunning) { 34 mCamera.stopPreview(); 35 mPreviewRunning = false; 36 } 37 38 } 39 } 40 41 }; 42 /** 43 * 在相機快門關閉時候的回調接口,通過這個接口來通知用戶快門關閉的事件, 44 * 普通相機在快門關閉的時候都會發出響聲,根據需要可以在該回調接口中定義各種動作, 45 * 例如:使設備震動 46 */ 47 ShutterCallback mShutterCallback = new ShutterCallback() { 48 49 public void onShutter() { 50 //just log ,do nothing 51 Log.d("ShutterCallback", "...onShutter..."); 52 } 53 54 }; 55 56 /** Called when the activity is first created. */ 57 @Override 58 public void onCreate(Bundle savedInstanceState) { 59 super.onCreate(savedInstanceState); 60 61 requestWindowFeature(Window.FEATURE_NO_TITLE); 62 getWindow().setFormat(PixelFormat.TRANSLUCENT); 63 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 64 WindowManager.LayoutParams.FLAG_FULLSCREEN); 65 setContentView(R.layout.camera); 66 mSurfaceView = (SurfaceView) findViewById(R.id.camera); 67 mImageView = (ImageView) findViewById(R.id.image); 68 mImageView.setVisibility(View.GONE); 69 70 mSurfaceView.setOnClickListener(this); 71 mSurfaceHolder = mSurfaceView.getHolder(); 72 mSurfaceHolder.addCallback(this); 73 mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); 74 75 } 76 77 @Override 78 public boolean onCreateOptionsMenu(Menu menu) { 79 super.onCreateOptionsMenu(menu); 80 menu.add(0, MENU_START, 0, R.string.camera_start); 81 menu.add(1, MENU_UP, 0, R.string.camera_UP); 82 menu.add(2, MENU_CANCEL, 0, R.string.camera_cancel); 83 return true; 84 } 85 86 @Override 87 public boolean onOptionsItemSelected(MenuItem item) { 88 if (item.getItemId() == MENU_START) { //拍照 89 mImageView.setVisibility(View.GONE); 90 mSurfaceView.setVisibility(View.VISIBLE); 91 if (mPreviewRunning) { 92 mCamera.stopPreview(); 93 } 94 mCamera.startPreview(); 95 96 mPreviewRunning = true; 97 return true; 98 } 99 if(item.getItemId() ==MENU_UP){ //上傳照片 100 101 102 } 103 if(item.getItemId() ==MENU_CANCEL){ //取消操作 104 105 CameraActivity.this.finish(); 106 } 107 return super.onOptionsItemSelected(item); 108 } 109 110 public void surfaceChanged(SurfaceHolder holder, int format, int width, 111 int height) { 112 if (mPreviewRunning) { 113 mCamera.stopPreview(); 114 } 115 Parameters params = mCamera.getParameters(); 116 params.setPreviewSize(120, 120); //直接規定照片大小 117 mCamera.setParameters(params); 118 119 try { 120 mCamera.setPreviewDisplay(holder); 121 } catch (IOException e) { 122 e.printStackTrace(); 123 } 124 mCamera.startPreview(); 125 mPreviewRunning = true; 126 } 127 128 public void surfaceCreated(SurfaceHolder holder) { 129 mCamera = Camera.open(); 130 } 131 132 public void surfaceDestroyed(SurfaceHolder holder) { 133 mCamera.stopPreview(); 134 mPreviewRunning = false; 135 mCamera.release(); 136 mCamera = null; 137 } 138 139 public void onClick(View v) { 140 mCamera.takePicture(mShutterCallback, null, mPictureCallback); 141 } 142 }


XML: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><SurfaceViewandroid:id="@+id/surface_camera"android:layout_width="fill_parent"android:layout_height="300dp" ></SurfaceView><ImageViewandroid:id="@+id/image"android:layout_width="wrap_content"android:layout_height="wrap_content" /></LinearLayout>


<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<!-- 調用攝像頭權限 -->?
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<!-- sd卡讀寫權限 -->
<uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
<!-- 掛載sd卡 -->

?

?

?

轉載于:https://www.cnblogs.com/xxiloveyou/p/3370373.html

總結

以上是生活随笔為你收集整理的SurfaceView 拍照功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产视频首页 | 亚洲我射av | 波多野结衣导航 | 色悠悠视频| 亚洲最新av在线 | 欧美xxxxbbbb| 欧美性在线观看 | 天天射天天射天天射 | av在线中文| 久久久久97 | 亚洲com| 国产又黄又粗的视频 | 波多野结衣一区二区三区在线观看 | 色在线视频观看 | 激情二区| av自拍一区| aaa成人 | 日韩一页| 日韩免费av一区 | 雪花飘电影在线观看免费高清 | 成人做爰www免费看视频网站 | 97香蕉超级碰碰久久免费软件 | 中文字幕人成人乱码亚洲电影 | 亚洲4438| 国产精品少妇 | 久草视频手机在线观看 | 青青草一区二区 | 97色在线观看 | 亚洲精品1区2区3区 国产丝袜网站 | 亚州三级 | 亚洲天堂免费在线观看视频 | 五月天久久 | a级特黄视频 | 爱情岛论坛亚洲品质自拍视频 | 爱爱视频在线看 | 草逼视频网站 | 久久久黄色 | 美国少妇在线观看免费 | 91欧美日韩国产 | 日本激情视频在线 | 好吊一区二区三区视频 | 午夜精品久久久久久久久久蜜桃 | 欧美日韩国产不卡 | 国产最新在线 | 成人福利一区二区 | 在线看黄的网站 | 国产伦理一区二区三区 | 国产精品一区二区白浆 | 国产ts在线播放 | 日韩成人一区二区 | xxxxhd欧美 | 国产一区二区欧美日韩 | 色欲av永久无码精品无码蜜桃 | 性欧美69| 成人开心网 | 成 人 黄 色 片 在线播放 | 中文字幕dvd| 黄色3级视频 | 成年人拍拍视频 | 欧美色第一页 | 久久久久久91亚洲精品中文字幕 | 91福利区 | 精品久久免费 | 亚洲精品污一区二区三区 | 久久99精品久久久久婷婷 | 欧美日韩亚洲一区 | 亚洲一区二区三区电影 | 91免费看大片 | www.蜜臀 | 午夜精品免费 | 性淫影院 | 在线视频欧美一区 | 日韩av一级片 | 伊人影院av | 艳妇乳肉豪妇荡乳av | 日本xxx高清 | 国产午夜福利100集发布 | 日韩永久免费 | 老熟妇高潮一区二区高清视频 | 黄大色黄大片女爽一次 | 一本色道久久综合亚洲精品按摩 | 国产视频99| 91看片在线观看 | 黄色片在线免费观看视频 | 黄色电影在线视频 | 国产一区二区电影 | 日本午夜三级 | 亚洲精品乱码久久久久久写真 | 国产欧美三区 | 黄色一级片免费看 | 久久久久免费观看 | 全部免费毛片在线播放高潮 | 国产精品9999 | 日本wwwxxxx | 特种兵之深入敌后高清全集免费观看 | 亚洲男人的天堂网 | 色黄视频在线观看 | 日韩一区二区三区久久 | 亚洲国产日韩在线观看 |