方法1:拍照页面跳转 预览界面时不finsh掉当前页面 然后点击某个按钮 finsh掉拍照预览页面 这样就回到拍照页面了
方法2: 直接
intent ---> CustomcameraActivity
因为预览图片的分辨率宽高比和真实图片分辨率的宽高比不相同
告诉你。还是那个权限的问题,你没授权camera和读写外置内存卡的权限
我聚焦了 但是还是很模糊
http://www.imooc.com/search/course?words=android%E5%9B%BE%E5%83%8F%E5%A4%84%E7%90%86
private class PhotoTask extends Thread { private String file; private boolean isFinished; public PhotoTask(String file) { this.file = file; } @Override public void run() { BufferedOutputStream bos = null; Bitmap icon = null; try { BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(file, options); //此时返回bm为空 float percent = options.outHeight > options.outWidth ? options.outHeight / 960f : options.outWidth / 960f; if (percent < 1) { percent = 1; } int width = (int)(options.outWidth / percent); int height = (int)(options.outHeight / percent); icon = Bitmap.createBitmap(width, height, Bitmap.Config.RGB_565); //初始化画布 绘制的图像到icon上 Canvas canvas = new Canvas(icon); //建立画笔 Paint photoPaint = new Paint(); //获取跟清晰的图像采样 photoPaint.setDither(true); //过滤一些 // photoPaint.setFilterBitmap(true); options.inJustDecodeBounds = false; Bitmap prePhoto = BitmapFactory.decodeFile(file); if (percent > 1) { prePhoto = Bitmap.createScaledBitmap(prePhoto, width, height, true); } canvas.drawBitmap(prePhoto, 0, 0, photoPaint); if (prePhoto != null && !prePhoto.isRecycled()) { prePhoto.recycle(); prePhoto = null; System.gc(); } //设置画笔 Paint textPaint = new Paint(Paint.ANTI_ALIAS_FLAG | Paint.DEV_KERN_TEXT_FLAG); //字体大小 textPaint.setTextSize(20.0f); //采用默认的宽度 textPaint.setTypeface(Typeface.DEFAULT); //采用的颜色 textPaint.setColor(Color.YELLOW); //阴影设置 // textPaint.setShadowLayer(3f, 1, 1, Color.DKGRAY); // 时间水印 String mark = getCurrTime("yyyy-MM-dd HH:mm:ss"); float textWidth = textPaint.measureText(mark); canvas.drawText(mark, width - textWidth - 10, height - 26, textPaint); bos = new BufferedOutputStream(new FileOutputStream(file)); int quaility = (int)(100 / percent > 80 ? 80 : 100 / percent); icon.compress(CompressFormat.JPEG, quaility, bos); bos.flush(); } catch (Exception e) { e.printStackTrace(); } finally { isFinished = true; if (bos != null) { try { bos.close(); } catch (IOException e) { e.printStackTrace(); } } if (icon != null && !icon.isRecycled()) { icon.recycle(); icon = null; System.gc(); } } } }