0

私のアプリでは、ユーザーが[カメラ]ボタンをクリックすると、インテントを使用してカメラに移動できるようになっています。

次に彼は写真を撮り、それをカメラボタンと同じ画面にあるImageViewにロードし直す必要があります。

画面の向きに問題があると思います。カメラビューをロードすると水平方向に切り替わり、閉じると垂直方向に戻り、画面全体がデフォルトにリセットされます。

これは私がlogcatで得るエラーです:

12-03 20:14:38.440: E/SpannableStringBuilder(15134): SPAN_EXCLUSIVE_EXCLUSIVE spans cannot have a zero length

何か案は?

編集:

これが何が起こるかです:

  • カメラボタンをクリックします。
  • スクリーンカメラビューが水平モードに切り替わりますが、垂直に保持しているため、垂直に切り替わります。
  • 横モードで写真を撮ります。
  • カメラアプリから、写真を保存するか、垂直モードでキャンセルするかを尋ねられます。
  • [保存]をクリックします。
  • 私のアプリは水平モードで読み込まれ、画像をimageView内に配置します。
  • その後、アプリは垂直モードに戻り、画面全体をリセットします。

私はあなたのすべてのコードを入れましたが、それは役に立ちません。

4

3 に答える 3

1

また、注意すべき点は、Androidのカメラはデフォルトでランドスケープモードでのみ動作することです。そのため、画面の向きに関係なく、カメラは水平モードでのみ起動します。また、上記のように

android:configChanges="orientation"

そして、以下のコールバックを使用して、アクティビティでこれを処理します

@Override
public void onConfigurationChanged(Configuration newConfig) {       
    super.onConfigurationChanged(newConfig);

}

于 2012-12-04T04:34:24.343 に答える
0

アクティビティがリセットされる理由は、カメラの意図によって画面の向きが変更されたためです。

android:configChanges="orientation"あなたはandroidManifest.xmlであなたの活動の中に入れることができます

それができたら、それはあなたの活動を破壊して再現することはありません。

詳細については、 http://developer.android.com/guide/topics/manifest/activity-element.html#configをご覧ください。

于 2012-12-04T03:32:05.157 に答える
0
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

私がしたのはそのコード行を追加することだけで、それは完璧に機能しました。

于 2012-12-06T15:07:29.933 に答える