Merge change 24630 into eclair

* changes:
  resolved conflicts for merge of e0408aa1 to eclair
This commit is contained in:
Android (Google) Code Review
2009-09-10 21:27:20 -04:00
2 changed files with 51 additions and 13 deletions

View File

@@ -37,6 +37,23 @@ import android.os.Message;
* frames for encoding for video. * frames for encoding for video.
* <p>There is no default constructor for this class. Use {@link #open()} to * <p>There is no default constructor for this class. Use {@link #open()} to
* get a Camera object.</p> * get a Camera object.</p>
*
* <p>In order to use the device camera, you must declare the
* {@link android.Manifest.permission#CAMERA} permission in your Android
* Manifest. Also be sure to include the
* <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature></a>
* manifest element in order to declare camera features used by your application.
* For example, if you use the camera and auto-focus feature, your Manifest
* should include the following:</p>
* <pre> &lt;uses-permission android:name="android.permission.CAMERA" />
* &lt;uses-feature android:name="android.hardware.camera" />
* &lt;uses-feature android:name="android.hardware.camera.autofocus" /></pre>
*
* <p class="caution"><strong>Caution:</strong> Different Android-powered devices
* may have different hardware specifications, such as megapixel ratings and
* auto-focus capabilities. In order for your application to be compatible with
* more devices, you should not make assumptions about the device camera
* specifications.</p>
*/ */
public class Camera { public class Camera {
private static final String TAG = "Camera"; private static final String TAG = "Camera";
@@ -179,10 +196,10 @@ public class Camera {
/** /**
* The callback that delivers the preview frames. * The callback that delivers the preview frames.
* *
* @param data The contents of the preview frame in {@link * @param data The contents of the preview frame in the format defined
* android.hardware.Camera.Parameters#getPreviewFormat()} * by {@link android.graphics.PixelFormat}, which can be queried
* format. If {@link * with {@link android.hardware.Camera.Parameters#getPreviewFormat()}.
* android.hardware.Camera.Parameters#setPreviewFormat(int)} * If {@link android.hardware.Camera.Parameters#setPreviewFormat(int)}
* is never called, the default will be the YCbCr_420_SP * is never called, the default will be the YCbCr_420_SP
* (NV21) format. * (NV21) format.
* @param camera The Camera service object. * @param camera The Camera service object.
@@ -323,6 +340,13 @@ public class Camera {
/** /**
* Handles the callback for the camera auto focus. * Handles the callback for the camera auto focus.
* <p>Devices that do not support auto-focus will receive a "fake"
* callback to this interface. If your application needs auto-focus and
* should not be installed on devices <em>without</em> auto-focus, you must
* declare that your app uses the
* {@code android.hardware.camera.autofocus} feature, in the
* <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature></a>
* manifest element.</p>
*/ */
public interface AutoFocusCallback public interface AutoFocusCallback
{ {
@@ -343,7 +367,12 @@ public class Camera {
* the camera does not support auto-focus, it is a no-op and {@link * the camera does not support auto-focus, it is a no-op and {@link
* AutoFocusCallback#onAutoFocus(boolean, Camera)} callback will be called * AutoFocusCallback#onAutoFocus(boolean, Camera)} callback will be called
* immediately. * immediately.
* * <p>If your application should not be installed
* on devices without auto-focus, you must declare that your application
* uses auto-focus with the
* <a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">&lt;uses-feature></a>
* manifest element.</p>
*
* @param cb the callback to run * @param cb the callback to run
*/ */
public final void autoFocus(AutoFocusCallback cb) public final void autoFocus(AutoFocusCallback cb)
@@ -874,11 +903,14 @@ public class Camera {
} }
/** /**
* Sets the image format for preview pictures. If this is never called, * Sets the image format for preview pictures.
* the default will be the YCbCr_420_SP (NV21) format. * <p>If this is never called, the default format will be
* * {@link android.graphics.PixelFormat#YCbCr_420_SP}, which
* @param pixel_format the desired preview picture format * uses the NV21 encoding format.</p>
* (<var>PixelFormat.YCbCr_420_SP (NV21)</var>, *
* @param pixel_format the desired preview picture format, defined
* by one of the {@link android.graphics.PixelFormat} constants.
* (E.g., <var>PixelFormat.YCbCr_420_SP</var> (default),
* <var>PixelFormat.RGB_565</var>, or * <var>PixelFormat.RGB_565</var>, or
* <var>PixelFormat.JPEG</var>) * <var>PixelFormat.JPEG</var>)
* @see android.graphics.PixelFormat * @see android.graphics.PixelFormat
@@ -896,9 +928,9 @@ public class Camera {
/** /**
* Returns the image format for preview pictures got from * Returns the image format for preview pictures got from
* {@link PreviewCallback}. * {@link PreviewCallback}.
* *
* @return the PixelFormat int representing the preview picture format * @return the {@link android.graphics.PixelFormat} int representing
* @see android.graphics.PixelFormat * the preview picture format.
*/ */
public int getPreviewFormat() { public int getPreviewFormat() {
return pixelFormatForCameraFormat(get(KEY_PREVIEW_FORMAT)); return pixelFormatForCameraFormat(get(KEY_PREVIEW_FORMAT));

View File

@@ -52,6 +52,12 @@ public class PixelFormat
* by the hardware. * by the hardware.
*/ */
public static final int YCbCr_422_SP= 0x10; public static final int YCbCr_422_SP= 0x10;
/** YCbCr format used for images, which uses the NV21 encoding format.
* This is the default format for camera preview images, when not
* otherwise set with
* {@link android.hardware.Camera.Parameters#setPreviewFormat(int)}.
*/
public static final int YCbCr_420_SP= 0x11; public static final int YCbCr_420_SP= 0x11;
/** /**