Android-写真をキャプチャします
-
28-09-2019 - |
質問
私のアプリケーションでは、カメラを起動して写真を撮る必要があるネイティブカメラアクティビティを実装する必要があります。
詳細には、私のアプリケーションが含まれています。1つのTextView(上部)アクティビティ名と1つのボタン(下部)を表示し、画面の中央領域では、カメラのプレビューを表示する必要があります。ユーザーをクリックすると、スナップをクリックする必要があります。別のアクティビティのImageViewに表示します。
私は次のアプローチが使用されていることを知っています:
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE );
intent.putExtra( MediaStore.EXTRA_OUTPUT, outputFileUri );
startActivityForResult( intent, 0 );
しかし、このアプローチを使用した場合、テキストビューとボタンビューは表示されません。
(PLSに注意してください:私はHTCヒーローでAndroid SDK 1.5を使用しています)
PLSは、記事、サイト、またはPDFの提案によって私を助けてくれます。
ありがとう、パレシュ
解決
ネイティブカメラを使用しようとしている場合、ネイティブカメラが呼び出されると、ビューを制御します。ただし、独自のカメラを実装したい場合は、そのようなレイアウトが可能です。いくつかの良い例はここにあります:
http://www.brighthub.com/mobile/google-android/articles/43414.aspx
http://labs.makemachine.net/2010/03/simple-android-photo-capture/
- http://www.jondev.net/articles/capturing, _saving,_and_displaying_an_image_in_android_1,_2.2,_sense_ui_-_hero)
幸運を!
他のヒント
すべての指示は、android.hardware.cameraのjavadocにあります http://developer.android.com/reference/android/hardware/camera.html:
- Open()からカメラのインスタンスを取得します。
- getParameters()で既存の(デフォルト)設定を取得します。
- 必要に応じて、返されたcamera.parametersオブジェクトを変更し、SetParameters(camera.parameters)を呼び出します。
- 必要に応じて、SetDisPlayOrientation(INT)を呼び出します。
- 重要:完全に初期化されたSurfaceHolderをsetPreviewDisplay(SurfaceHolder)に渡します。表面がなければ、カメラはプレビューを開始できません。
- 重要:startpreview()を呼び出して、プレビュー表面の更新を開始します。写真を撮る前に、プレビューを開始する必要があります。
- 必要に応じて、TakePicture(camera.shuttercallback、camera.picturecallback、camera.picturecallback、camera.picturecallback)に電話して、写真をキャプチャします。コールバックが実際の画像データを提供するのを待ちます。
- 写真を撮った後、プレビューディスプレイは停止します。より多くの写真を撮るには、最初にstartpreview()に再び電話してください。
- stoppreview()を呼び出して、プレビュー表面の更新を停止します。
重要:リリース()を呼び出して、他のアプリケーションで使用するためにカメラをリリースします。アプリケーションは、OnPause()(およびReopen()でonresume()ですぐにカメラをリリースする必要があります。
SurfaceHolderは、使用を使用して通常実装されています SurfaceView