私は現在、カメラ プレビュー (surfaceview を拡張する) をレイアウトに追加し、それを使用してユーザーから写真を取得するアクティビティを持っています。次に、その写真を新しいアクティビティに渡します。写真を撮って、同じアクティビティで開くことができるかどうか疑問に思っていますか? カメラのプレビューを削除してから、新しいビューを開いて、撮影した写真を追加すると思いますか? これが進むべき道かどうかはわかりません。写真をSDカードなどに保存して、次のアクティビティに写真を渡す必要があるのは面倒です。
1 に答える
2
この目的で 2 つのアクティビティを使用することには、いくつかの利点があります。
- 戻るボタンを使用すると、ユーザーは満足できない場合にもう一度写真を撮ることができます。クリックして戻ることが彼らの最初の行動かもしれませんが、論理的に 2 ステップ戻ることは期待していません。これは設計の観点から非常に重要であり、2 つのアクティビティを使用すると無料で取得できます。
- 写真を表示するときに不要なすべてのカメラ コントロールの自動削除
- すべての UI をコードではなく XML で宣言できます
ただし、アクティビティの代わりに 2 つのフラグメントを使用して、上記のボーナスを取得し、画像をファイルに保存しないようにすることができます。1 つのフラグメントはカメラ プレビュー用です。もう 1 つは画像を表示するためのものです。
onPictureTaken()
コールバックでは、 を取得するために使用しdecodeByteArray(data, 0, data.length)
ますBitmap
。「カメラ」フラグメントに渡します。FragmentTransaction
「カメラ」フラグメントを非表示にし、「ディスプレイ」フラグメントを表示する を作成します。トランザクションを BackStack に追加してコミットします。
でカメラを適切に閉じてくださいFramgent.onPause()
。
于 2012-12-19T14:57:08.303 に答える