Ich habe versucht, ein Bild von URLs zu laden, aber es funktioniert nicht. Zwei verschiedene Fehler passieren. Wenn ich eine URL einfüge, die mit www beginnt, wird die App nicht geschlossen, aber das Bild wird nicht geladen, sondern nur ein weißer Bereich angezeigt. Wenn die URL jedoch mit http: // beginnt, wird die App geschlossen.Ein Bild kann nicht von URL geladen werden
Der Code, den ich um das Bild zu laden bin mit der nächste:
public class ThreadAdapter extends BaseAdapter {
ArrayList<Threadx> data;
LayoutInflater inflater;
public ThreadAdapter(Context context, ArrayList<Threadx> data) {
super();
inflater = LayoutInflater.from(context);
this.data = data;
}
@Override
public int getCount() {
return data.size();
}
@Override
public Object getItem(int position) {
return data.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
private static class ViewHolder {
TextView tvSubject;
TextView tvContent;
ImageView imagen;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder viewHolder = null;
if (convertView == null) {
convertView = inflater.inflate(R.layout.list_row_thread, null);
viewHolder = new ViewHolder();
viewHolder.tvSubject = (TextView) convertView
.findViewById(R.id.tvSubject);
viewHolder.tvContent = (TextView) convertView
.findViewById(R.id.tvContent);
viewHolder.imagen = (ImageView) convertView
.findViewById(R.id.image);
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
String subject = data.get(position).getSubject();
String content = data.get(position).getContent();
String imagen = data.get(position).getImagen();
viewHolder.tvSubject.setText(subject);
viewHolder.tvContent.setText(content);
Bitmap bitmap = null;
HttpURLConnection urlConnection = null;
try {
URL url = new URL("www.matrallune.com/images/imagen_corporativa.jpg");
//bitmap = BitmapFactory.decodeStream((InputStream)new URL("www.matrallune.com/images/imagen_corporativa.jpg").getContent());
//bitmap = BitmapFactory.decodeStream(url.openConnection().getInputStream());
urlConnection = (HttpURLConnection) url.openConnection();
InputStream is = urlConnection.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
} catch (IOException e) {
e.printStackTrace();
}
viewHolder.imagen.setImageBitmap(bitmap);
return convertView;
}
}
ich verschiedene Methoden ausprobiert, wie Sie im Code sehen können, aber alle von ihnen die gleichen Probleme haben. Meine Absicht ist, die URL von der Variable "imagen" abzufangen.
Sie vermissen urlConnection.connect(); –
Hat Ihre App die richtigen Berechtigungen? Erhalten Sie eine Ausnahme? –
Sie können auch die Bildladebibliothek 'Picasso' verwenden, die das Bild effizient laden kann und auch die Antwort zwischenspeichern kann. http://square.github.io/picasso/ – theapache64