在我的Android应用中,我使用相机并以编程方式启动它。我在gt-s5360上运行我的代码,但视图逆时针旋转了90度。我的代码在HTC wildfire-s上运行良好。视图正确显示而不旋转视图。但是它没有在每个设备上显示正确的视图。所以我如何编写适用于所有设备的代码(android)。我的android jar是2.2,API级别是8.请帮助我。这是我的代码。

public class AndroidCamera extends Activity implements SurfaceHolder.Callback{
    int rotate=90;
    Camera camera;
    SurfaceView surfaceView;
    SurfaceHolder surfaceHolder;
    boolean previewing = false;
    LayoutInflater controlInflater = null;
    public static ArrayList<Activity> activities=new ArrayList<Activity>();
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        activities.add(this);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

        getWindow().setFormat(PixelFormat.TRANSLUCENT);
        surfaceView = (SurfaceView)findViewById(R.id.camerapreview);
        surfaceHolder = surfaceView.getHolder();
        surfaceHolder.addCallback(this);
        surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);


        Intent i=new Intent();
        i.setClassName("a.b.c","a.b.c.DialPad");
        startActivity(i);

    }


    public void surfaceChanged(SurfaceHolder holder, int format, int width,
            int height) {
        // TODO Auto-generated method stub
        //this.camera.setDisplayOrientation(90);
        if(previewing){
            camera.stopPreview();
            previewing = false;
        }

        if (camera != null){
            try {
                camera.setPreviewDisplay(surfaceHolder);
                camera.startPreview();
                //camera.setDisplayOrientation(90);
                previewing = true;
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }

    }

    public void surfaceCreated(SurfaceHolder holder) {
        // TODO Auto-generated method stub
        camera = Camera.open();
        camera.setDisplayOrientation(rotate);
        //Parameters p= camera.getParameters();
        //p.setRotation(90);
        /*if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT)
        {   
            p.set("orientation", "portrait");
            p.set("rotation",90);
            Toast.makeText(getApplicationContext(), "Potrait Mode", Toast.LENGTH_SHORT).show();
        }
        if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE)
        {                               
            p.set("orientation", "landscape");          
            p.set("rotation", 90);
            Toast.makeText(getApplicationContext(), "Landscape Mode", Toast.LENGTH_SHORT).show();
        }*/




    }

    public void surfaceDestroyed(SurfaceHolder holder) {
        // TODO Auto-generated method stub
        camera.stopPreview();
        camera.release();
        camera = null;
        previewing = false;

    }

  ask by picaso translate from so

本文未有回复,本站智能推荐:

4回复

某些设备(不是EXIF)捕获Android相机无法解释的旋转

我正在做的事情似乎应该很简单,但在我阅读了每一个可能的Stackoverflow答案之后我仍然迷失了,我可以找到并搜索我能找到的每篇文章。 我正在使用预览SurfaceView并从我在AndroidManifest.xml中为screenOrientation =“landscape”设置
1回复

Android相机旋转通用

我尝试在设备旋转时旋转相机,iv尝试了几种方法,但似乎没有一种方法适用于所有设备。 //这适用于我的nexus 5,但不适用于我的Samsung galaxy选项卡 //并且我尝试了这一点,这是文档的一部分,但在我的nexus 5上不起作用: 有人为所有设备提供有效的解决方
1回复

Android 1.6相机旋转?

我在android dev论坛上发布了这个,但是想在这里联系。 我们的应用程序中的一项活动是拍照。 图片预览在1.5和1.6的屏幕上显示正确的方式,但保存后,它会保存jpg 90旋转。 我可以在显示时实时旋转它,我想我可以在保存后重新保存它。 我的问题是我想在拍照时正确保存。
2回复

当我旋转相机应用程序中的屏幕并且我的主要活动失败时,Android Camera无法将照片返回主要活动

这是我的第一篇文章,虽然我是Android新手,但到目前为止,这个社区很棒。 这是我相对简单的应用程序遇到的麻烦。 我的主要活动有图像视图。 onClick时,图像视图将打开“相机”应用程序。 我可以拍照,相机应用程序将返回该图片并将其设置为图像视图中的图片。 当我从一个方
2回复

相机正在空中旋转90度为Android

在我的Android版AS3 Flex Mobile应用程序中,我正在使用相机,在我自己完成任何视频旋转之前它会自动旋转90度,这似乎是AIR中的一个已知错误。 但我想知道是否有人找到了解决方案,因为它对移动应用程序开发人员来说真的非常重要。 我试图在我的代码中手动进行一些旋转,但它只修
1回复

在Android中旋转相机拍摄的照片

我正在尝试使用不带UI的前置摄像头拍摄照片的应用程序,但我已经成功完成了操作,但是唯一的问题是照片始终以横向模式拍摄,是否有任何方法可以将其强制为人像模式?
2回复

Android:纵向模式下的相机预览方向

我正在使用相机仅显示预览(不拍照或录制视频)。 应用程序始终处于纵向模式(禁用横向模式)。 相机预览始终旋转90度ccw并且我无法更改它(既不使用setDisplayOrientation也不使用p.set("orientation", "portrait" )和p.set("rotat
1回复

Android OpenGl移动相机和绘图对象

我正在创建一个应用程序,该应用程序应该在场景中的恒定位置绘制对象,但是当我四处移动手机时,摄像头应该会改变视图,并且我应该看到周围的所有对象(当我使用手机进行完整旋转时)。 当我在onDrawFrame方法中使用gl.glMultMatrixf(rotationMatrix,0)然后绘制对
4回复

Android相机产生的图像捕获后应该旋转吗?

我正在编写一个使用相机的Android应用程序。 我将相机显示方向设置为90,我的活动是纵向: 我得到的是定向良好的预览图片,但是生成的图像旋转到-90度(逆时针),并且 返回ORIENTATION_NORMAL 这是预期的行为吗? 捕获后是否应该旋转结果图像? 设
3回复

使用相机的Android应用程序,屏幕旋转后照片消失

该应用程序的目的是拍摄照片,然后将其显示在屏幕上。 我已将屏幕旋转锁定为纵向,但在照片被拍摄并连接到应用程序屏幕后,手机的屏幕可以再次旋转,如果发生这种情况,图像就会消失。 我该如何解决这个问题? 这是代码