Я пытался отобразить файл изображения с помощью ImageView, хотя я знал, что могу напрямую декодировать файл в растровое изображение, но я должен был сделать с ним что-то другое, поэтому я мог выбрать только байт [].
Код выглядит следующим образом:
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();}
Я пытался проверить, правильно ли я прочитал изображение, поэтому я декодирую его в Bitmap, затем пытаюсь отобразить его, но оно не отображает изображение.вообще.
Есть ли что-то, что я неправильно понял с FileInputStream?PS.Я использую log.i, чтобы проверить и обнаружил, что длина beforeData нормальная, но данные внутри получаются только: [B @ 40c4b110, что не похоже на данные изображения.
Заранее спасибо, Desolve.
Ой, спасибо, Силикон, я забыл рассмотреть эту часть ... (В самом начале я это сделал) Однако, похоже, что не в этом главная проблема ... Теперь цикл выглядит так:
while (pos < beforeData.length){
read = fis.read(beforeData, pos, 1);
pos += read;
}
Это глупо и глупо, я знаю, но код в этом блоке должен работать правильно, верно?Тем не менее, я все еще не вижу изображения в моем ImageView.
Другой PS: путь к файлу по адресу /mnt/sdcard/DCIM/Camera/1310368442822.jpg, размер 1485847 байт, может привести к возникновению проблем.