如何显示视频缩略图相同的相机视图?

时间:2014-04-05 16:41:38

标签: android android-camera

代码集相机的方向:

public static void setCameraDisplayOrientation(Activity activity,
                int cameraId, android.hardware.Camera camera) {
            try {

                android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo();
                android.hardware.Camera.getCameraInfo(cameraId, info);
                int rotation = activity.getWindowManager().getDefaultDisplay()
                        .getRotation();
                int degrees = 0;
                switch (rotation) {
                case Surface.ROTATION_0:
                    degrees = 0;
                    break;
                case Surface.ROTATION_90:
                    degrees = 90;
                    break;
                case Surface.ROTATION_180:
                    degrees = 180;
                    break;
                case Surface.ROTATION_270:
                    degrees = 270;
                    break;
                }

                int result;
                if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
                    result = (info.orientation + degrees) % 360;
                    result = (360 - result) % 360; // compensate the mirror
                } else { // back-facing
                    result = (info.orientation - degrees + 360) % 360;
                }
                camera.setDisplayOrientation(result);
            } catch (Exception e) {
                // TODO: handle exception
            }
        }

代码显示结果文件视频到imageview:

Bitmap bm = ThumbnailUtils.createVideoThumbnail(dt.FileName,
                        MediaStore.Images.Thumbnails.MINI_KIND);
                img.setScaleType(ImageView.ScaleType.CENTER_CROP);
                img.setImageBitmap(bm);

enter image description here 如何在相机视图中显示视频缩略图?

1 个答案:

答案 0 :(得分:2)

使用矩阵:

Bitmap bmp = ThumbnailUtils.createVideoThumbnail(dt.FileName,
                        MediaStore.Images.Thumbnails.MINI_KIND);
                img.setScaleType(ImageView.ScaleType.CENTER_CROP);
                Matrix matrix = new Matrix();
                matrix.postRotate(90);
                bmp = Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(),
                        bmp.getHeight(), matrix, true);
                img.setImageBitmap(bmp);