1

このコードを使用して画像をダウンロードしています:

// Download AVATAR
                    try {
                        File avatar = new File(Environment.getExternalStorageDirectory() + "/Android/data/carl.fri.fer.omegan/avatar.jpg");
                        prefs.edit().putString("loginUser", json.name).commit();
                        prefs.edit().putInt("loginMatter", json.darkmatter).commit();

                        if (!avatar.exists()) {
                            Log.i("AVATAR", "Downloading user avatar...");
                            URL url = new URL("Valid URL");

                            URLConnection ucon = url.openConnection();
                            InputStream is = ucon.getInputStream();
                            BufferedInputStream bis = new BufferedInputStream(is);
                            ByteArrayBuffer baf = new ByteArrayBuffer(50);
                            int current = 0;
                            while ((current = bis.read()) != -1) {
                                    baf.append((byte) current);
                            }

                            FileOutputStream fos = new FileOutputStream(avatar);
                            fos.write(baf.toByteArray());
                            fos.close();
                        }
                        else Log.i("AVATAR", "The user avatar already exists!");
                } catch (IOException e) { System.out.println("Error downloading avatar: " + e); }

そして、このコードを使用してこの画像を表示しようとします:

File usrAvatar = new  File(Environment.getExternalStorageDirectory() + "/Android/data/carl.fri.fer.omegan/avatar.jpg");
            if(usrAvatar.exists()) {

                Bitmap avatarBmp = BitmapFactory.decodeFile(usrAvatar.getAbsolutePath());
                userAvatar.setImageBitmap(avatarBmp);
            }

問題は次の場所に表示されます。

userAvatar.setImageBitmap(avatarBmp);

Android 4.0.4: エラーの種類: NullPointerException

Android 2.3.5: エラーの種類: ImageView で画像が表示されないのにエラーが表示されない.

1-ImageViewドローアブルフォルダーから画像を表示できるため、userAvatarは正しいです。

2- ファイルマネージャーを使用すると、指定したフォルダーとファイル名で画像を見つけることができるため、表示したい画像が正常にダウンロードされます。

3- 任意の画像ビューアを使用して開くことができるため、画像が破損していません。

それで、どれが問題になる可能性がありますか?それは狂ったように運転しています!

どんな助けでも大歓迎です。

よろしくお願いします!

4

1 に答える 1

0

次のコードを試してください。

        ImageView bmImage;
      FileInputStream instream = new FileInputStream("/sdcard/Pictures/Image.png"); 
            BufferedInputStream bif = new BufferedInputStream(instream); 
            byteImage1 = new byte[bif.available()]; 
            bif.read(byteImage1); 
            textView.append("\r\n" + byteImage1+"\r\n"); 
                        bmImage.setImageBitmap(BitmapFactory.decodeByteArray(byteImage1, 0, byteImage1.length));
            textView.append("\r\n" + byteImage2+"\r\n"); 
于 2012-10-03T07:39:15.577 に答える