栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

android实现手机App实现拍照功能示例

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

android实现手机App实现拍照功能示例

实现手机App实现拍照功能结果如下


第一步:

activity_takephoto.xml布局用SurfaceView

 

      
  
    

第二步:TakephotoActivity类

public class TakephotoActivity extends AppCompatActivity {

  private SurfaceView sv_takephoto;
  private Button b_OK;
  private Button b_qh;
  private Camera camera;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_takephoto);
    //获得SurfaceView的ID
    sv_takephoto =(SurfaceView) findViewById(R.id.sv_takephoto);
    //获得拍照的ID
    b_OK =(Button)findViewById(R.id.b_OK);
    //获得切换镜头的ID
    b_qh =(Button)findViewById(R.id.b_qh);

    sv_takephoto.getHolder().addCallback(new SurfaceHolder.Callback() {
      @Override
      public void surfaceCreated(SurfaceHolder surfaceHolder) {
      //打开相机
 camera = Camera.open();
 //给相机设置参数
 Camera.Parameters parameters= camera.getParameters();
 //设置保存的格式
 parameters.setPictureFormat(PixelFormat.JPEG);
 parameters.set("jpeg-quality",85);
 camera.setParameters(parameters);

 //将画面展示到SurfaceView中
 try {
   camera.setPreviewDisplay(sv_takephoto.getHolder());
   //开启预览
   camera.startPreview();
 } catch (IOException e) {
   e.printStackTrace();
 }

      }

      @Override
      public void surfaceChanged(SurfaceHolder surfaceHolder, int i, int i1, int i2) {

      }

      @Override
      public void surfaceDestroyed(SurfaceHolder surfaceHolder) {

      }
    });

    //拍照的点击事件
    b_OK.setonClickListener(new View.onClickListener() {
      @Override
      public void onClick(View view) {
 //拍照
 camera.takePicture(null, null, new Camera.PictureCallback() {
   @Override
   public void onPictureTaken(byte[] bytes, Camera camera) {
     //将字节数组转成图片
     Bitmap bitmap= BitmapFactory.decodeByteArray(bytes,0,bytes.length);
     try {
FileOutputStream fos=new FileOutputStream("/mnt/sdcard/DCIM/"+System.currentTimeMillis()+".jpg");
bitmap.compress(Bitmap.CompressFormat.PNG,85,fos);
camera.stopPreview();
camera.startPreview();
     } catch (FileNotFoundException e) {
e.printStackTrace();
     }
   }
 });

    }
    });

  }
}

第三步:在AndroidManifest.xml中加权限

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/159702.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号