完整dome见 http://download.csdn.net/download/qq_36467463/10212718
部分重要代码:
//照相 private void startCamera() { camera.takePicture(null, null, new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] bytes, Camera camera) {//照片数据,byte数据的形式 //拍照出来的相片 BitmapFactory.Options options=new BitmapFactory.Options(); options.outHeight=surfaceView.getHeight(); options.outWidth=surfaceView.getWidth(); Bitmap bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes.length,options); if(bitmap!=null){ //以下3行代码为将横向照片变为竖向并设置尺寸为surfaceView的尺寸,,, Matrix matrix = new Matrix(); matrix.setRotate(90); int i = surfaceView.getWidth() / bitmap.getWidth(); int j = surfaceView.getHeight() / bitmap.getHeight(); if(i>0){i++;} if(j>0){j++;} matrix.setScale(i,j); bitmap = Bitmap.createBitmap(bitmap, 0, 0,bitmap.getWidth() , bitmap.getHeight(), matrix, true); bitmap = Bitmap.createBitmap(bitmap, 0, 0,surfaceView.getWidth() , surfaceView.getHeight(), null, true); noWater_img.setImageBitmap(bitmap);//没有处理的相片,如需要可保存 Bitmap textBitmap = BitmapUtils.getInstance().createWaterTextBitmap(MainActivity.this, bitmap, "文字", 45); Bitmap resource = BitmapFactory.decodeResource(getResources(), R.drawable.sun);//先将图片转成bitmap int left = weather_img.getLeft(); int top = weather_img.getTop(); Bitmap waterImgBitmap = BitmapUtils.getInstance().createWaterImgBitmap(MainActivity.this,textBitmap, resource,left ,top); water_img.setImageBitmap(waterImgBitmap); }else { camera.stopPreview(); camera.release(); } } }); }