资源预览内容
第1页 / 共8页
第2页 / 共8页
第3页 / 共8页
第4页 / 共8页
第5页 / 共8页
第6页 / 共8页
第7页 / 共8页
第8页 / 共8页
亲,该文档总共8页全部预览完了,如果喜欢就下载吧!
资源描述
Android手机摄像头编程入门实例:窈窈照相机,功能很简单,就是点击程序弹出照相预览界面,点击相机按钮完成照相功能,所照相片会存储在手机存储卡根目录。1、创建一个项目 Lesson36_Camera ,主程序文件为 MainActivity.java2、AndroidManifest.xml 中设置屏幕为横屏,并且声明摄像头和存储卡的使用权限,具体代码如下:view sourceprint?01020304050607080910111213141516173、本例中不需要布局文件main.xml,因为本例中的UI组建都是动态添加上去的。4、最后MainActivity.java的代码如下:view sourceprint?001packagebasic.android.lesson36;002003importjava.io.BufferedOutputStream;004importjava.io.File;005importjava.io.FileOutputStream;006importjava.io.IOException;007importjava.util.Calendar;008importjava.util.Locale;009010importandroid.app.Activity;011importandroid.content.Context;012importandroid.graphics.Bitmap;013importandroid.graphics.BitmapFactory;014importandroid.graphics.PixelFormat;015importandroid.hardware.Camera;016importandroid.os.Bundle;017importandroid.text.format.DateFormat;018importandroid.util.Log;019importandroid.view.KeyEvent;020importandroid.view.SurfaceHolder;021importandroid.view.SurfaceView;022importandroid.view.Window;023importandroid.view.WindowManager;024importandroid.widget.FrameLayout;025importandroid.widget.TextView;026importandroid.widget.Toast;027028publicclassMainActivityextendsActivity 029030privateCameraView cv;031/准备一个相机对象032privateCamera mCamera =null;033/准备一个Bitmap对象034privateBitmap mBitmap =null;035036/准备一个保存图片的PictureCallback对象037publicCamera.PictureCallback pictureCallback =newCamera.PictureCallback() 038039publicvoidonPictureTaken(byte data, Camera camera) 040Log.i(yao,onPictureTaken);041Toast.makeText(getApplicationContext(),正在保存, Toast.LENGTH_LONG).show();042/用BitmapFactory.decodeByteArray()方法可以把相机传回的裸数据转换成Bitmap对象043mBitmap = BitmapFactory.decodeByteArray(data,0, data.length);044/接下来的工作就是把Bitmap保存成一个存储卡中的文件045File file =newFile(/sdcard/YY+newDateFormat().format(yyyyMMdd_hhmmss, Calendar.getInstance(Locale.CHINA) +.jpg);046try047file.createNewFile();048BufferedOutputStream os =newBufferedOutputStream(newFileOutputStream(file);049mBitmap.compress(Bitmap.CompressFormat.PNG,100, os);050os.flush();051os.close();052Toast.makeText(getApplicationContext(),图片保存完毕,在存储卡的根目录, Toast.LENGTH_LONG).show();053catch(IOException e) 054e.printStackTrace();055056057058;059060/Activity的创建方法061Override062publicvoidonCreate(Bundle savedInstanceState) 063super.onCreate(savedInstanceState);064065/窗口去掉标题066requestWindowFeature(Window.FEATURE_NO_TITLE);067/窗口设置为全屏068getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);069/设置窗口为半透明070getWindow().setFormat(PixelFormat.TRANSLUCENT);071072/提供一个帧布局073FrameLayout fl =newFrameLayout(this);074075/创建一个照相预览用的SurfaceView子类,并放在帧布局的底层076cv =newCameraView(this);077fl.addView(cv);078079/创建一个文本框添加在帧布局中,我们可以看到,文字自动出现在了SurfaceView的前面,由此你可以在预览窗口做出各种特殊效果080TextView tv =newTextView(this);081tv.setText(请按/相机/按钮拍摄);082fl.addView(tv);083084/设置Activity的根内容视图085setContentView(fl);086087088089/
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号