相关疑难解决方法(0)

如何正确设置Android相机方向?

我想根据Android中的设备方向设置相机方向,但似乎没有任何效果.我尝试旋转Surface以及相机参数,但是纵向模式下的相机预览总是颠倒过来.我需要顺时针旋转90度才能使其正确.这是我现在使用的代码,仅适用于横向模式.

    SurfaceHolder.Callback surfaceCallback = new SurfaceHolder.Callback() {

    @Override
    public void surfaceDestroyed(SurfaceHolder holder) {
        camera.stopPreview();
        camera.release();
        camera = null;
    }

    @Override
    public void surfaceCreated(SurfaceHolder holder) {          
        initCamera();           
    }

    private Size getOptimalPreviewSize(List<Size> sizes, int w, int h) {
        final double ASPECT_TOLERANCE = 0.2;
        double targetRatio = (double) w / h;
        if (sizes == null)
            return null;

        Size optimalSize = null;
        double minDiff = Double.MAX_VALUE;

        int targetHeight = h;

        // Try to find an size match aspect ratio and size
        for (Size size …
Run Code Online (Sandbox Code Playgroud)

camera android orientation surfaceview

87
推荐指数
7
解决办法
16万
查看次数

禁用从纵向到横向的默认动画

我有一个带有几个"正常"活动的应用程序,可以在横向或纵向上运行.它们专为肖像而设计.

这个应用程序有一个单独的活动,使用相机,并锁定在景观.我通过将图像和文本旋转90度来模拟'此活动是在肖像上,所以它看起来像其他活动.

在某些设备上,例如Samsung Galaxy Tab 7和Galaxy S3,从正常的纵向活动到相机横向活动并返回时,会显示旋转动画.这对用户来说很困惑,因为景观活动模拟了肖像.

有没有办法删除这个旋转动画?理想情况下,我想更改为默认的纵向到纵向动画,但只是删除旋转动画就足够了.

我试过了

overridePendingTransition(0, 0);
Run Code Online (Sandbox Code Playgroud)

该方法的其他变体没有成功.

[添加]

根据@igalarzab,@ Georg和@Joe的建议,我做到了这一点(仍然没有运气):

  • 向Manifest添加了android:configChanges ="orientation | screenSize"
  • 添加了onConfigurationChanged
  • 创建了一个虚拟动画,它什么都不做,并添加了overridePendingTransition(R.anim.nothing,R.anim.nothing);

我有这些结果:

  • 仅在旋转相同的活动时调用onConfigurationChanged(纵向上的活动A - 横向上的活动A).但是从纵向上的活动A - >景观上的活动B开始时不会调用它
  • 这会阻止Activity在旋转时重新启动,但它没有删除旋转动画(在Galaxy S3,Galaxy Nexus,Galaxy Tab 7.0和Galaxy Tab 10.1上测试)
  • overridePendingTransition(R.anim.nothing,R.anim.nothing); 删除了正常过渡(纵向 - >纵向和横向 - >横向)但它没有删除旋转动画(纵向 - >横向,反之亦然).

[视频]

我上传了一个显示我要禁用的动画的视频.当在肖像上按住手机时从相机活动(锁定到风景)更改为其他活动时会发生这种情况:

http://youtu.be/T79Q1P_5_Ck

android android-animation android-layout

42
推荐指数
2
解决办法
1万
查看次数