2016-05-30 5 views
0

Ich habe Bilder über eine Filmdatenbank, die den Pfad zum Bild online zur Verfügung stellt (die ich in einem Filmobjekt gespeichert habe). Ich möchte diese Bilder herunterladen und sie mit einem benutzerdefinierten ArrayAdapter anzeigen, aber ich weiß nicht, wie Bilder heruntergeladen werden, auf die durch eine Bild-ID verwiesen wird. Hier ist der Code;Wie konvertiert man heruntergeladene Bilder in int-Bild-IDs (zur Verwendung mit einem ArrayAdapter)?

Klasse, die einen Film darstellt, enthält einen Titel, posterpath für über das Internet herunterzuladen, die ganze Zahl für die posterImg heruntergeladen lokal (nicht sicher, wie diese zu finden):

public class Movie { 
    protected String id; 
    protected String posterPath; 
    protected String title; 
    //TODO pass in image reference 
    protected int posterImg; 
    private final String LOG_TAG = Movie.class.getSimpleName(); 

    public Movie(String id, String posterPath, String title){ 
     this.posterPath = posterPath; 
     this.id = id; 
     this.title = title; 
    } 

    public String getId() { 
     return id; 
    } 

    public String getPosterPath() { 
     return posterPath; 
    } 

    public String getTitle() { 
     return title; 
    } 

    public int getPoster() { return posterImg; } 
} 

Individuelle ArrayAdapter mit nur wenigen Methoden :

public class MovieAdapter extends ArrayAdapter<Movie> { 
    private static final String LOG_TAG = MovieAdapter.class.getSimpleName(); 

    public MovieAdapter(Activity context, List<Movie> movies){ 
     super(context, 0, movies); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent){ 
     Movie movie = getItem(position); 

     if(convertView == null){ 
      convertView = LayoutInflater.from(getContext()).inflate(R.layout.list_item_movie, parent, false); 
     } 

     ImageView iconView = (ImageView) convertView.findViewById(R.id.list_item_icon); 
     iconView.setImageResource(movie.getPoster()); 

     TextView titleView = (TextView) convertView.findViewById(R.id.list_item_title); 
     titleView.setText(movie.getTitle()); 

     return convertView; 
    } 
} 

Wie soll ich diese Bilder importieren und zeigt sie, diese Methode oder eine andere Verwendung? Ich habe mir Dinge wie die LazyList-Bibliothek angeschaut, aber ich konnte nicht herausfinden, wie ich sie in mein Projekt importiere. Ich würde auch gerne wissen, wie man das mit dieser Methode macht.

Danke.

Antwort

0

können Sie Glide verwenden Download zu handhaben, Caching und Bild angezeigt wird alles mit nur einer Zeile Code. Sie müssen nur nicht mit IDs umgehen.

ImageView targetImageView = (Bildansicht) findViewById (R.id.imageView);

Zeichenfolge internetUrl = "http://i.imgur.com/DvpvklR.png";

Glide .mit (Kontext) .load (InternetUrl) .into (targetImageView);

Lesen Sie mehr darüber hier

https://futurestud.io/blog/glide-getting-started

Verwandte Themen