9

タイトルは「初心者の質問」のように聞こえるかもしれませんが、私は Android のプログラミング方法をよく知っています。

私のユースケースは次のとおりです。ユーザーが写真を撮り、ファイルサイズの制限があるサーバーに送信します(これは、デバイスで写真のサイズを直接変更する必要があることを意味します)。

簡単そうですよね?私の問題は次のとおりです。

1)一部のカメラアプリはお尻でコーディングされているためクラッシュする可能性があるインテントをより適切に使用するか、cawcカメラライブラリで「写真を撮って確認する」基本的なビューを構築しますか?(私は2つを行いました。私は意図を好みますが、それについて意見を述べたいと思います)。

2)ファイルサイズの制限をどのように処理しますか? 写真のサイズを取得するのは非常に簡単ですFile.length()(戻り値が完全に正しくない場合でも) が、制限を超えた場合、サイズ変更された画像の大きさをどのように判断できますか? (サイズを変更するにはビットマップに変換する必要があり、多くの問題がOOMExceptionあり、ディスク上のビットマップの最終サイズを計算できません。圧縮してディスクに書き込み、後で新しく作成されたファイルを分析する必要があります)。

助けてくれてありがとう:D

4

3 に答える 3

1

このトピックには多くの質問があり、検索していただければ幸いです。

Q)一部のカメラ アプリはお尻でコーディングされているためクラッシュする可能性があるインテントを使用するか、cawc カメラ ライブラリを使用して「写真を撮って確認する」という基本的なビューを構築する方がよいでしょうか? (私は2つを行いました。私は意図を好みますが、それについて意見を述べたいと思います)。

A)インテントは組み込まれているため最適です。一部のデバイス メーカーは画像の切り抜きとサイズ変更を意図しており、同じメーカーではなく古いデバイスにそれがないという同様の問題に直面しています。基本的な操作には、安定した信頼できるサードパーティ製アプリで十分です。

Q)ファイルサイズの制限をどのように処理しますか? File.length() を使用すると、写真のサイズを取得するのは非常に簡単です (戻り値が完全に正しくない場合でも)。(サイズを変更するにはビットマップに変換する必要があり、OOMException で多くの問題が発生し、ディスク上のビットマップの最終的なサイズを計算できません。圧縮してディスクに書き込み、新しく作成されたファイルを分析する必要があります) .

A)

  1. ファイルサイズの制限をどのように処理しますか? サイズの制限はカメラによって異なります。10MP カメラを使用している場合、結果のサイズは 5MP を超えます (部品を取得できることを願っています)。
  2. サイズを変更するにはビットマップに変換する必要があり、OOMException で多くの問題が発生し、ディスク上のビットマップの最終的なサイズを計算できません。 Android のベスト プラクティスはそのままに、ビットマップ操作が完了したらすぐにビットマップをリサイクルします。何百もの画像を含むアプリがあり、それらのほとんどがサーバーに送信され、OOM がスローされる場合があるため、それに応じて処理します。
于 2015-05-26T05:53:44.463 に答える