1

私は一種の「偽の」カメラになる Android 2.2 用のアプリを作成しています。SurfaceView を使用してビデオを再生し、コントロールをユーザーに公開して写真を撮り、前面と背面の「カメラ」を切り替えています。

ストックアンドロイドで経験したものと一致するアニメーションを両方に追加したいと思います。つまり、ユーザーが写真を撮ると、フレームがフリーズして右にスライドし、ライブカメラの画像が左からスライドインします。ユーザーがカメラを切り替えると、3D フリップ アニメーションが発生します。

私が遭遇した問題は、SurfaceView にあります。OS とハードウェアに結び付けられているため、SurfaceView からビットマップを取得することはできないという投稿を多数読みました。

また、ビデオのフレームを取得して ImageView を使用しようとしましたが、MediaMetadataRetriever は API レベル 10 までサポートされていないようです。以前に (レベル 5 に戻って) 利用可能であるという投稿を見たことがありますが、私は持っていませんそれを使用する方法、または公式にサポートされていないため、使用する必要があるかどうかを考えてください。

私の最後の考えは、SurfaceViewの描画をオーバーライドし、何らかのマトリックスを適用して出力に影響を与えるか、ピクセルデータを外部のイメージビューにエクスポートすることですが、後のオプションが可能かどうかはわかりません.

ここで何ができるかについて誰かが私にいくつかのガイダンスを教えてくれますか?

4

1 に答える 1

0

結局、私はうまくいくものを見つけることができませんでした。

私は終わりました:

  • SurfaceView を非表示にして ImageView を表示する
  • ImageView のコンテンツを (大まかに) SurfaceView に表示されていたものに設定します。通常、SurfaceView の内容を取得することはできないため、これがおそらく最も難しい部分でした。
  • ImageView のアニメーション化
  • 再生を再開する前に、ImageView を非表示にして、SurfaceView を再度表示します。
于 2013-01-28T15:33:00.090 に答える