ファイルを直接デコードすることができるとわかっていましたが、ImageView、 を使って画像ファイルを表示しようとしましたが、それ以外のものは、バイト[]だけを選ぶことができました。バイト配列を使用してファイルを読み込んだ後、ImageView(Android)に表示
コードは次のようになります。
File file = new File(getRealPathFromURI(Uri.parse(ImgUri)));
byte[] beforeData = new byte[(int) file.length()];
try {
FileInputStream fis = new FileInputStream(file);
int detectEnd = 0;
while (detectEnd != -1){detectEnd = fis.read(beforeData, 0, 1024);}
Bitmap b_t = BitmapFactory.decodeByteArray(beforeData, 0, beforeData.length);
editImgView.setImageBitmap(b_t);
} catch (FileNotFoundException e) {e.printStackTrace();}
catch (IOException e) {e.printStackTrace();}
私は、そう私はそれを表示しようその後、ビットマップにでデコード 、私が正しく絵で読むかどうかをテストしてみました が、それはいずれも表示されません。写真はまったくありません。
FileInputStreamで私が誤解していることはありますか? PS。私はlog.iを使用してチェックし、前のデータの長さが普通であることがわかりました。 しかし、内部のデータは取得: [B @ 40c4b110、 写真のデータのようではありません。
ありがとうございました。 Desolve。 (私は非常に開始時に)私はその部分を考慮するのを忘れ
おっと、あなたはsiliconeagleおかげで、 ... 主な問題がどこにあるかそうでないようにしかし、それは ...思わ今ループのように見えます:
while (pos < beforeData.length){
read = fis.read(beforeData, pos, 1);
pos += read;
}
右、それは愚かだと私はこのブロック内のコードが正しく動作するはずです 、知っているダミー? しかし、ImageViewでまだ画像が表示されませんでした。
別のPS: ファイルのパスは、サイズが何らかのトラブルを引き起こす、/mnt/sdcard/DCIM/Camera/1310368442822.jpgで サイズ1485847バイト、 のですか?
おかげで、しかし、問題はまだあります。)だけでなく...
最良の方法です。 – Desolve