Volley - NetworkImageView manchmal nicht zeigen, das Fehler Bild?

Also habe ich beschlossen, zu versuchen, die neue Volley-Bibliothek, wie gezeigt, auf Google IO 2013.

Ich habe es ausprobiert während der Verwendung des einfachen Lösung NetworkImageView zeigen mehrere Bilder auf einer GridView.

Es funktioniert sehr erfreulich und zeigt die Bilder, aber wenn ich lassen Sie es laden Sie die Bilder und dann habe ich schalten Sie die WLAN während dem herunterladen, es nicht zeigen, ein Fehler, wie wenn alles noch lädt. Nicht nur das, aber wenn ich die Verbindung wiederherzustellen, es nicht wieder die Belastung.

Warum funktioniert es, und wie kann ich es beheben? Vielleicht ist es tatsächlich ein bug?

Hier ist mein Beispiel code, wenn jemand will, um es auszuprobieren (BitmapCacheLru code hier):

public class MainActivity extends Activity {
    private static final int COLUMNS_COUNT = 4;
    private RequestQueue _requestQueue;
    private ImageLoader _imageLoader;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        _requestQueue=Volley.newRequestQueue(this);
        _imageLoader=new ImageLoader(_requestQueue, new BitmapLruCache());

        final GridView gridView = new GridView(this);
        gridView.setNumColumns(COLUMNS_COUNT);
        final int screenWidth = getResources().getDisplayMetrics().widthPixels;

        gridView.setAdapter(new BaseAdapter() {
            @Override
            public View getView(final int position, final View convertView, final ViewGroup parent) {
                NetworkImageView rootView = (NetworkImageView) convertView;

                if (rootView == null) {
                    rootView = new NetworkImageView(MainActivity.this);
                    rootView.setLayoutParams(new AbsListView.LayoutParams(screenWidth / COLUMNS_COUNT, screenWidth / COLUMNS_COUNT));
                    rootView.setScaleType(ScaleType.CENTER_CROP);
                    rootView.setDefaultImageResId(android.R.drawable.sym_def_app_icon);
                    rootView.setErrorImageResId(android.R.drawable.ic_dialog_alert);
                }

                final String url = getItem(position);
                rootView.setImageUrl(url, _imageLoader);
                return rootView;
            }

            @Override
            public long getItemId(final int position) {
                return 0;
            }

            @Override
            public String getItem(final int position) {
                return Images.imageThumbUrls[position];
            }

            @Override
            public int getCount() {
                return Images.imageThumbUrls.length;
            }
        });

        setContentView(gridView);
    }

    @Override
    protected void onStop() {
        _requestQueue.cancelAll(this);
        super.onStop();
    }
}

P. S. Wenn Sie möchten, um zu sehen, den code von NetworkImageView ich denke, es ist verfügbar hier .

  • Blick in die Logcat, gibt es irgendwelche Fehler/debug-Meldungen aus Volley, wenn Sie schalten Sie den Wi-Fi?
  • eigentlich habe ich nicht überprüft. tut volley haben eine spezielle log-tag zu suchen?
  • Ja, es ist "Volleyball", als man sich vorstellen kann 🙂
Schreibe einen Kommentar