3

これを行う方法はありますか?このチュートリアル ( http://marakana.com/forums/android/examples/39.html ) に従いましたが、うまくいきました。さらに、FrameLayout (カメラ プレビューを含む) を ImageView を使用して RelativeLayout に配置します。

<RelativeLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >



    <FrameLayout
        android:id="@+id/preview"
        android:layout_width="330dp"
        android:layout_height="233dp"
        android:layout_marginTop="22dp"
        android:layout_alignBottom="@+id/imageView1"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" >
    </FrameLayout>

<ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/image_on_preview" />

</RelativeLayout>

アプリケーションを起動すると、カメラとその上にイメージビューがあります。写真をSDカードに保存すると、カメラで撮影した写真しか取得できませんが、イメージビューは表示されません(もちろん、なぜ表示されるのでしょうか)。私の質問はどうすれば保存できますか?理解を深めるために、アプリケーションを使用しているときにスクリーン ショットをキャプチャしました。

ここに画像の説明を入力

そのため、カメラのプレビューとイメージビューの両方を 1 つの画像に保存したいと思います。可能かどうかはわかりませんが、写真をSDカードに保存する必要がなければ最高です。あとで「SDカードに保存」ボタンを追加して保存します。

**アップデート

今、私は方法を考え出した。写真をSDカードに保存し、ファイルが作成されたら別の意図に変更します。「image_on_preview」と、以前に画像を保存したソースを持つもう1つの2つのイメージビューが含まれています。さて、どうにかしてトリッキーになり、2 つのイメージビューを結合する必要があります :)

***アップデート2

よし、やった。2 番目のアクティビティでは、両方のイメージ ビューをビットマップに変換します。次に、キャンバスを描画し、それらを相互に配置してから、SD カードに直接保存できます。

4

1 に答える 1

3

誰も答えず、私は問題を解決したので(そして1票がありました)、私は自分の方法を示します。

  1. 最初のアクティビティには、FrameLayout と Imageview を含む RelativeLayout があります。添付画像の通りです。
  2. 画像をキャプチャするボタンを作成しました。そのボタンを押すと、キャプチャした写真が SD カードに保存され、アクティビティ 2 に変わります。
  3. activity2 では、保存した画像をビットマップに読み込み (OutOfMemory エラーに対して即座にスケーリングします)、それを imageview に追加します。アクティビティ1と同じように、別のイメージビュー(カバー)と保存した写真を相対的なレイアウトに配置します。
  4. SD カードに保存するには、キャンバスを作成し、canvas.drawBitmap(). イメージビュー (カバー) よりも先にキャプチャした写真を描き、アクティビティと同じように配置/スケーリングします。キャンバスにビットマップが描画され、SD カードに保存できます。5* (スキップされる場合があります) 最初の画像を削除します。

これが誰かに役立つことを願っています:)

于 2012-07-28T22:07:47.713 に答える