6

私のアプリケーションでは、カメラを起動して写真を撮る必要があるネイティブカメラアクティビティを実装する必要があります。

詳細には、アクティビティ名を表示する1つのTextView(上部)と1つのボタン(下部)を含むアプリケーションと、画面の中央領域にカメラプレビューが表示されます。ユーザーがそのボタンをクリックすると、スナップをクリックする必要があります。別のアクティビティのImageviewに表示します。

私は次のアプローチが使用されていることを知っています:

Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );

しかし、このアプローチを使用した場合、テキストビューとボタンビューは表示されません。

(Plsは注意してください:私はHTCHeroでAndroidSDK 1.5を使用しています)

plsは、記事、サイト、またはpdfの提案によって私を助けてくれます。

ありがとう、パレシュ

4

2 に答える 2

9

ネイティブ カメラを使用しようとしている場合、ネイティブ カメラが呼び出されると、ビューが制御されます。ただし、独自のカメラを実装する場合は、そのようなレイアウトが可能です。いくつかの良い例がここにあります:

幸運を!

于 2010-08-16T16:13:58.950 に答える
4

すべての手順は、http : //developer.android.com/reference/android/hardware/Camera.html の android.hardware.Camera の JavaDoc にあります。

  1. open() から Camera のインスタンスを取得します。
  2. getParameters() で既存の (デフォルト) 設定を取得します。
  3. 必要に応じて、返された Camera.Parameters オブジェクトを変更し、setParameters(Camera.Parameters) を呼び出します。
  4. 必要に応じて、setDisplayOrientation(int) を呼び出します。
  5. 重要: 完全に初期化された SurfaceHolder を setPreviewDisplay(SurfaceHolder) に渡します。サーフェスがないと、カメラはプレビューを開始できません。
  6. 重要: プレビュー サーフェスの更新を開始するには、startPreview() を呼び出します。写真を撮る前に、プレビューを開始する必要があります。
  7. 必要に応じて、 takePicture(Camera.ShutterCallback, Camera.PictureCallback, Camera.PictureCallback, Camera.PictureCallback) を呼び出して写真をキャプチャします。コールバックが実際の画像データを提供するまで待ちます。
  8. 撮影後、プレビュー表示は停止します。さらに写真を撮るには、最初に startPreview() を再度呼び出します。
  9. stopPreview() を呼び出して、プレビュー サーフェスの更新を停止します。
  10. 重要: release() を呼び出して、他のアプリケーションで使用できるようにカメラを解放します。アプリケーションは、onPause() ですぐにカメラを解放する必要があります (onResume() で reopen() します)。

    SurfaceHolder は通常、SurfaceView を使用して実装されます

于 2010-08-16T09:36:53.010 に答える