我一直在为这个圈子做准备。我在surfaceview上有全屏摄像头预览。质量看起来不错。我需要在用户点击时冻结图像,然后将一个图像视图放在surfaceview的顶部(它需要是一个图像视图,因为对它进行了更多的操作,而不能用表面视图完成)。 / p>
但是,当我使用下面的代码时,它可以工作,但表面视图上的最终位图项目质量很差。
public void onPictureTaken(byte[] data, Camera camera) {
try {
FileOutputStream out = openFileOutput("pictureTemp.png", Activity.MODE_PRIVATE);
out.write(data);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
File XX = getFileStreamPath("pictureTemp.png");
ImageView imageViewX = (ImageView) findViewById(8);
imageViewX.setScaleType(ImageView.ScaleType.CENTER_CROP);
BitmapFactory.Options options = new BitmapFactory.Options();
options.inPreferredConfig = Bitmap.Config.ARGB_8888;
Bitmap bitmapN = BitmapFactory.decodeFile(XX.toString(), options);
imageViewX.setImageBitmap(bitmapN);
SwitchCamIcons();
}
public static Bitmap RotateBitmap(Bitmap source, float angle){
Matrix matrix = new Matrix();
matrix.postRotate(angle);
return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
}