In the future, we will officially support portrait mode camera.
Cupcake will have "unofficial" support (there will be a way to set it
to portrait mode through the setParameter interface), but I don't know
if we'll be able to make that work for other hardware.

On Mar 10, 3:11 am, "Jun'ichi Hirayama" <hiraya...@gmail.com> wrote:
> Hi David
>
> will you officially support the camera API in portrait mode?
>
> On Wed, Feb 18, 2009 at 1:08 AM, Dave Sparks <davidspa...@android.com>wrote:
>
>
>
>
>
> > This code shouldn't even compile, this line is wrong:
>
> > mCamera.takePicture(null, mPictureCallback); // requires 3 callback
> > functions
>
> > Camera is only supported in landscape mode. Cupcake release will
> > "unofficially" support portrait mode (there will be no API for it, but
> > I'll probably put some sample code out that shows how to do it).
>
> > On Feb 16, 9:35 pm, cindy <ypu01...@yahoo.com> wrote:
> > > I tried google's camera API sample code. I found there are 2 problems:
> > > 1> It only can take picture in Landscape orientation
> > > 2> After click the space "key", the application crashes. WOw:)
>
> > > XML:
> > > <LinearLayout xmlns:android="http://schemas.android.com/apk/res/
> > > android"
> > >     android:layout_width="fill_parent"
> > > android:layout_height="fill_parent"
> > >     android:orientation="vertical">
> > >     <SurfaceView android:id="@+id/surface"
> > >         android:layout_width="fill_parent"
> > > android:layout_height="10dip"
> > >         android:layout_weight="1">
> > >     </SurfaceView>
> > > </LinearLayout>
> > > Java code:
> > > /**
> > >  * Copyright (c) 2007, Google Inc.
> > >  *
> > >  * Licensed under the Apache License, Version 2.0 (the "License");
> > >  * you may not use this file except in compliance with the License.
> > >  * You may obtain a copy of the License at
> > >  *
> > >  *    http://www.apache.org/licenses/LICENSE-2.0
> > >  *
> > >  * Unless required by applicable law or agreed to in writing,
> > > software
> > >  * distributed under the License is distributed on an "AS IS" BASIS,
> > >  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> > > implied.
> > >  * See the License for the specific language governing permissions
> > > and
> > >  * limitations under the License.
> > >  */
>
> > > package com.android.cameraapitest;
>
> > > import android.app.Activity;
> > > import android.content.Intent;
> > > import android.graphics.Canvas;
> > > import android.graphics.Paint;
> > > import android.graphics.PixelFormat;
> > > import android.graphics.Rect;
> > > import android.net.Uri;
> > > import android.os.Handler;
> > > import android.os.Message;
> > > import android.os.Bundle;
> > > import android.provider.MediaStore.Images;
> > > import android.provider.MediaStore.Video;
> > > import android.view.Menu;
> > > import android.view.MenuItem;
> > > import android.view.SurfaceHolder;
> > > import android.view.SurfaceView;
> > > import android.view.KeyEvent;
> > > import android.hardware.Camera;
>
> > > import android.util.Log;
>
> > > public class CameraApiTest extends Activity implements
> > > SurfaceHolder.Callback
> > > {
> > >     private static final String TAG = "CameraApiTest";
> > >     Camera mCamera;
> > >     boolean mPreviewRunning = false;
>
> > >     public void onCreate(Bundle icicle)
> > >     {
> > >         super.onCreate(icicle);
>
> > >         Log.e(TAG, "onCreate");
>
> > >         getWindow().setFormat(PixelFormat.TRANSLUCENT);
>
> > >         setContentView(R.layout.camera_api_test);
> > >         mSurfaceView = (SurfaceView)findViewById(R.id.surface);
>
> > >         mSurfaceHolder = mSurfaceView.getHolder();
> > >         mSurfaceHolder.addCallback(this);
> > >         mSurfaceHolder.setType
> > > (SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
> > >     }
>
> > >     public boolean onCreateOptionsMenu(android.view.Menu menu) {
> > >         MenuItem item = menu.add(0, 0, 0, "goto gallery");
> > >         item.setOnMenuItemClickListener(new
> > > MenuItem.OnMenuItemClickListener() {
> > >             public boolean onMenuItemClick(MenuItem item) {
> > >                 Uri target = Uri.parse("content://media/external/
> > > images/media");
> > >                 Intent intent = new Intent(Intent.ACTION_VIEW,
> > > target);
> > >                 startActivity(intent);
> > >                 return true;
> > >             }
> > >         });
> > >         return true;
> > >     }
>
> > >     @Override
> > >     protected void onRestoreInstanceState(Bundle savedInstanceState)
> > >     {
> > >         super.onRestoreInstanceState(savedInstanceState);
> > >     }
>
> > >     Camera.PictureCallback mPictureCallback = new
> > > Camera.PictureCallback() {
> > >         public void onPictureTaken(byte[] data, Camera c) {
> > >             Log.e(TAG, "PICTURE CALLBACK: data.length = " +
> > > data.length);
> > >             mCamera.startPreview();
> > >         }
> > >     };
>
> > >     public boolean onKeyDown(int keyCode, KeyEvent event)
> > >     {
> > >         if (keyCode == KeyEvent.KEYCODE_BACK) {
> > >             return super.onKeyDown(keyCode, event);
> > >         }
>
> > >         if (keyCode == KeyEvent.KEYCODE_SPACE) {
> > >             mCamera.takePicture(null, mPictureCallback);
> > >             return true;
> > >         }
>
> > >         return false;
> > >     }
>
> > >     protected void onResume()
> > >     {
> > >         Log.e(TAG, "onResume");
> > >         super.onResume();
> > >     }
>
> > >     protected void onSaveInstanceState(Bundle outState)
> > >     {
> > >         super.onSaveInstanceState(outState);
> > >     }
>
> > >     protected void onStop()
> > >     {
> > >         Log.e(TAG, "onStop");
> > >         super.onStop();
> > >     }
>
> > >     public void surfaceCreated(SurfaceHolder holder)
> > >     {
> > >         Log.e(TAG, "surfaceCreated");
> > >         mCamera = Camera.open();
> > >         //mCamera.startPreview();
> > >     }
>
> > >     public void surfaceChanged(SurfaceHolder holder, int format, int
> > > w, int h)
> > >     {
> > >         Log.e(TAG, "surfaceChanged");
>
> > >         // XXX stopPreview() will crash if preview is not running
> > >         if (mPreviewRunning) {
> > >             mCamera.stopPreview();
> > >         }
>
> > >         Camera.Parameters p = mCamera.getParameters();
> > >         p.setPreviewSize(w, h);
> > >         mCamera.setParameters(p);
> > >         mCamera.setPreviewDisplay(holder);
> > >         mCamera.startPreview();
> > >         mPreviewRunning = true;
> > >     }
>
> > >     public void surfaceDestroyed(SurfaceHolder holder)
> > >     {
> > >         Log.e(TAG, "surfaceDestroyed");
> > >         mCamera.stopPreview();
> > >         mPreviewRunning = false;
> > >         mCamera.release();
> > >     }
>
> > >     private SurfaceView mSurfaceView;
> > >     private SurfaceHolder mSurfaceHolder;
>
> > > }
>
> --
> BR
> Jun'ichi
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to