问答详情
源自:3-5 Android自定义相机之基本功能梳理

拍出来的图片不清晰

拍出来的和图片不一样

提问者:qq_wickedmonste_0 2016-06-21 17:19

个回答

  • xzhang76
    2018-02-01 15:39:12

    首先,这个问题和楼上的说法没有任何关系。

    这个问题归根结底是由于不同android rom兼容性导致的问题,解决思路也要从兼容性着手。

    当自己调用camera实现拍照的时候,有一个picture size的设置,就是拍照生成图片的宽和高。如果自己没有指定,android系统会自己默认给你一个picture size,不同android rom的差异性导致了有些默认size是很小的(最低的size)。

    所以,解决方法就是在拍照的时候指定自己想要的picture size。通常的做法是先找到系统camera所支持的所有picture size,然后找一个自己想要的(规则自己定)。具体如下:

    Parameters params = mCamera.getParameters();
    List<Camera.Size> supportedSize = parameters.getSupportedPictureSizes();
    
    Camera.Size optimalPictureSize = ...; // 遍历所有的size从中找一个自己想要的
    parameters.setPictureSize(optimalPictureSize.width, optimalPictureSize.height);

    如果图片模糊不清晰就可以指定大的size。

  • 繁华落尽终成梦
    2016-06-21 20:08:34

    看看有没有漏掉这几行代码


    /**
    * 解决拍照后图像与实际情况不同的问题
    */
    try {
       FileInputStream fis=new FileInputStream(path);
       Bitmap bitmap= BitmapFactory.decodeFile(path);
       Matrix matrix=new Matrix();
       matrix.setRotate(90);
       bitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true);
       imageView.setImageBitmap(bitmap);
    } catch (FileNotFoundException e) {
       e.printStackTrace();
    }