Android Baseadapter를 사용하여 이미지를로드하는 방법은 무엇입니까?

올쿤 무스타파

내 프로젝트는 오류없이 작동하지만로드시 이미지가 Listview에로드되지 않습니다.

다음은 샘플 이미지입니다.

첫 번째 작업 이미지의 샘플

그러나 ListView를 드래그하면 모든 이미지가로드됩니다.

드래그 생성 된 이미지로드 샘플

도와주세요. 나쁜 영어 죄송합니다.

Categoryadapter.java

package com.medyasef.dernek.tjod;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.http.AndroidHttpClient;
import android.os.AsyncTask;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.methods.HttpGet;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;

/**
 * Created by olkunmustafa on 26.09.2013.
 */
public class CategoryAdapter extends BaseAdapter {
    private String LOG_NAME = "HATA";
    private List<Categoryicerikler> list_view;
    private HashMap<Integer,Bitmap> bitmaplist;
    private Context mContext;
    private Categories categories = new Categories();


    public CategoryAdapter(List<Categoryicerikler> list_view, Context mContext) {
        this.list_view = list_view;
        this.mContext = mContext;
        bitmaplist = new HashMap<Integer, Bitmap>();

        for (int i = 0; i < list_view.size() ; i++) {
            Categoryicerikler bitmap_icerikler = list_view.get(i);
            setBitmapFromURL(bitmap_icerikler.getCategory_post_image(),i);
        }
    }
    /*
    Burada resimleri çekmek için thread oluşturuyoruz.
    Resim linkini ve ImageView'i veriyoruz ve ekrana basmasını sağlıyoruz.
     */
    public void setBitmapFromURL(final String src,final int value) {
        new Thread(
                new Runnable()
                {
                    @Override
                    public void run() {
                        HttpURLConnection connection= null;
                        try {
                            URL url = new URL(src);
                            connection = (HttpURLConnection) url.openConnection();
                            connection.setRequestMethod("GET");
                            connection.setDoInput(true);
                            connection.setDoOutput(true);
                            connection.connect();
                            InputStream input = connection.getInputStream();
                            final Bitmap myBitmap = BitmapFactory.decodeStream(input);
                            try {
                                bitmaplist.put(value,myBitmap);
                            }
                            catch (Exception e){
                                Log.d(LOG_NAME,e.getMessage());
                                Log.d(LOG_NAME,"Resim ekleme işlemi başarısız.");
                            }


                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                        finally {
                            connection.disconnect();
                        }
                    }
                }).start();
    }

    @Override
    public int getCount() {
        return list_view.size();
    }

    @Override
    public Object getItem(int position) {
        return list_view.get(position);
    }

    @Override
    public long getItemId(int position) {
        return list_view.indexOf(getItem(position));
    }

    @Override
    public View getView(int position, View convertview, ViewGroup viewGroup) {
        Categoryicerikler categoryicerikler = list_view.get(position);
        ViewHolder holder = null;

        if(convertview==null){
            Log.d(LOG_NAME,"sonuc");
            convertview = LayoutInflater.from(mContext).inflate(R.layout.categories,viewGroup,false);
            holder = new ViewHolder();
            holder.txtTitle = (TextView) convertview.findViewById(R.id.category_posttitle);
            holder.txtDate  = (TextView) convertview.findViewById(R.id.category_postdate);
            holder.imageView  = (ImageView) convertview.findViewById(R.id.category_image);
            convertview.setTag(holder);
            Categories.categoryAdapter.notifyDataSetChanged();
        }
        else {
            holder = (ViewHolder) convertview.getTag();
        }

        holder.txtTitle.setText(categoryicerikler.getCategory_posttitle());
        holder.txtDate.setText(categoryicerikler.getCategory_postdate());
        try {
        holder.imageView.setImageBitmap(bitmaplist.get(position));
        }
        catch (Exception e){

        }

        return convertview;
    }

    /*private view holder class*/
    private class ViewHolder {
        ImageView imageView;
        TextView txtTitle;
        TextView txtDate;
    }
}

Categoryicerikler.java

    package com.medyasef.dernek.tjod;

import android.graphics.Bitmap;
import android.widget.ImageView;

/**
 * Created by olkunmustafa on 26.09.2013.
 */
public class Categoryicerikler {
    private String category_posttitle;
    private String category_postdate;
    private String category_post_content;
    private String category_post_image;

    public Categoryicerikler( String category_posttitle, String category_postdate, String category_post_content,String post_image) {
        this.category_posttitle = category_posttitle;
        this.category_postdate = category_postdate;
        this.category_post_content = category_post_content;
        this.category_post_image = post_image;
    }

    public String getCategory_posttitle() {
        return category_posttitle;
    }

    public void setCategory_posttitle(String category_posttitle) {
        this.category_posttitle = category_posttitle;
    }

    public String getCategory_postdate() {
        return category_postdate;
    }

    public void setCategory_postdate(String category_postdate) {
        this.category_postdate = category_postdate;
    }

    public String getCategory_post_content() {
        return category_post_content;
    }

    public void setCategory_post_content(String category_post_content) {
        this.category_post_content = category_post_content;
    }

    public String getCategory_post_image() {
        return category_post_image;
    }

    public void setCategory_post_image(String category_post_image) {
        this.category_post_image = category_post_image;
    }
}

Categories.java

package com.medyasef.dernek.tjod;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.SystemClock;
import android.text.Html;
import android.util.Log;
import android.webkit.WebSettings;
import android.webkit.WebView;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import org.json.JSONException;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.List;

/**
 * Created by olkunmustafa on 25.09.2013.
 */
public class Categories extends Activity {
    private List<Categoryicerikler> content_list;
    public static CategoryAdapter categoryAdapter;
    private ListView main_category;
    private static HashMap<Integer,Bitmap> bitmaplist;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main_categories);
        main_category = (ListView) findViewById(R.id.main_category);
        new GetCategory().execute();
    }

    private class GetCategory extends AsyncTask<Void,Void,String> {

        @Override
        protected void onPreExecute() {
            Toast.makeText(Categories.this, "İslem Baslıyor Bekleyiniz", Toast.LENGTH_SHORT).show();
        }

        @Override
        protected String doInBackground(Void... voids) {
            /*
            Burada internete bağlanıp json veriyi string cinsinden çekiyoruz.
             */
            InternetConnection internetcon = new InternetConnection();
            String json_result = internetcon.get_json_data();
            return json_result;
        }

        @Override
        protected void onPostExecute(String data) {
            /*
            Gelen string veriyi json_to_list_view metoduna veriyorum
            Bu metot gelen json verisinin içeriklerini doldurarak bana birt liste dönderir.
             */
            try {
                content_list = GetJson.json_to_list_view(data);
            } catch (JSONException e) {
                Log.d("Json_Error","Json çekilirken hata oluştu");
            }
            categoryAdapter = new CategoryAdapter(content_list,Categories.this);
            main_category.setAdapter(categoryAdapter);
        }
    }
}
Sockeqwe

단순히 목록보기에서 이미지를로드하려면 Picasso 를 사용하는 것이 좋습니다.

간단하고 빠르며 거의 모든 작업을 자동으로 수행합니다. 또한 활동 파괴에 대한 요청 취소에 대해 신경 쓸 필요가 없습니다. 따라서 단순히 ListView의 ImageView에 이미지를로드하려는 경우 이것이 최선의 시작이라고 생각합니다.

예를 들어 어댑터에서 다음을 사용할 수 있습니다.

Picasso.with(context)
    .load(url)
    .placeholder(R.drawable.placeholder)
    .error(R.drawable.error)
    .into(imageView);

imageview는 listview 셀의 ImageView입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Picasso를 사용하여 Android에 로컬로 저장된 이미지를 여는 방법은 무엇입니까?

분류에서Dev

android studio의 gridview에서 이미지 경로를 사용하여 이미지를로드하는 방법은 무엇입니까?

분류에서Dev

Android 이미지 갤러리에 여러 이미지를로드하는 방법은 무엇입니까?

분류에서Dev

이미지 및 CSS 파일과 같은 관련 리소스를 사용하여 HTML 페이지를 Android WebView에로드하는 방법은 무엇입니까?

분류에서Dev

NodeJS를 백엔드로 사용하여 Android에서 서버에 이미지 (Base64 String)를 업로드하는 방법은 무엇입니까?

분류에서Dev

Android를 사용하여 Firebase 저장소에 마지막으로 업로드 된 이미지의 경로를 가져 오는 방법은 무엇입니까?

분류에서Dev

bytearray를 사용하여 서버 측에서 Android로 이미지를 다운로드하는 방법은 무엇입니까?

분류에서Dev

프로그래밍 방식으로 Android에서 ImageView를 사용하여 단색 이미지를 만드는 방법은 무엇입니까?

분류에서Dev

Android의 서버에 여러 이미지를 업로드하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

Android Volley Library를 사용하여 서버에 비트 맵 이미지를 업로드하는 방법은 무엇입니까?

분류에서Dev

Android에서 HTML 코드를 사용하여 로컬에 저장된 이미지를 여는 방법은 무엇입니까?

분류에서Dev

FFMPEG로 이미지를 사용하여 이미지를 만드는 방법은 무엇입니까?

분류에서Dev

Javascript를 사용하여 웹 페이지에 이미지를 업로드하는 방법은 무엇입니까?

분류에서Dev

Codeigniter를 사용하여 여러 이미지를 업로드하는 방법은 무엇입니까?

분류에서Dev

jquery를 사용하여 이미지를 선택하고 업로드하는 방법은 무엇입니까?

분류에서Dev

OpenCV를 사용하여 ROS에지도 이미지를 업로드하는 방법은 무엇입니까?

분류에서Dev

SDWebImage를 사용하여 JSON에서 UIImageView로 이미지를로드하는 방법은 무엇입니까?

분류에서Dev

Android에서 범용 이미지 로더를 사용하여 비디오 및 이미지 축소판을 표시하는 방법은 무엇입니까?

분류에서Dev

QuickBox API를 사용하여 이미지를 다운로드하는 방법은 무엇입니까?

분류에서Dev

QuickBox API를 사용하여 이미지를 다운로드하는 방법은 무엇입니까?

분류에서Dev

nscache를 사용하여 API에서 이미지를 다운로드하는 방법은 무엇입니까?

분류에서Dev

Android에서 이미지의 일부를 버튼 배경으로 사용하는 방법은 무엇입니까?

분류에서Dev

Android에서 이미지를 버튼으로 사용하는 방법은 무엇입니까?

분류에서Dev

Multipart를 사용하여 이미지 파일을 업로드하는 방법은 무엇입니까?

분류에서Dev

Laravel을 사용하여 databae에 이미지를 업로드하는 방법은 무엇입니까?

분류에서Dev

Android에서 카메라를 사용하여 로고를 감지하는 방법은 무엇입니까?

분류에서Dev

Android Studio에서 사용하지 않는 이미지를 삭제하는 방법은 무엇입니까?

분류에서Dev

Android Room을 사용하여 allowmainthreadqueries ()를 사용하지 않는 가장 좋은 방법은 무엇입니까?

분류에서Dev

AlertDialog [Android]에서 Intent를 사용하여 웹 페이지를 시작하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    Picasso를 사용하여 Android에 로컬로 저장된 이미지를 여는 방법은 무엇입니까?

  2. 2

    android studio의 gridview에서 이미지 경로를 사용하여 이미지를로드하는 방법은 무엇입니까?

  3. 3

    Android 이미지 갤러리에 여러 이미지를로드하는 방법은 무엇입니까?

  4. 4

    이미지 및 CSS 파일과 같은 관련 리소스를 사용하여 HTML 페이지를 Android WebView에로드하는 방법은 무엇입니까?

  5. 5

    NodeJS를 백엔드로 사용하여 Android에서 서버에 이미지 (Base64 String)를 업로드하는 방법은 무엇입니까?

  6. 6

    Android를 사용하여 Firebase 저장소에 마지막으로 업로드 된 이미지의 경로를 가져 오는 방법은 무엇입니까?

  7. 7

    bytearray를 사용하여 서버 측에서 Android로 이미지를 다운로드하는 방법은 무엇입니까?

  8. 8

    프로그래밍 방식으로 Android에서 ImageView를 사용하여 단색 이미지를 만드는 방법은 무엇입니까?

  9. 9

    Android의 서버에 여러 이미지를 업로드하는 가장 좋은 방법은 무엇입니까?

  10. 10

    Android Volley Library를 사용하여 서버에 비트 맵 이미지를 업로드하는 방법은 무엇입니까?

  11. 11

    Android에서 HTML 코드를 사용하여 로컬에 저장된 이미지를 여는 방법은 무엇입니까?

  12. 12

    FFMPEG로 이미지를 사용하여 이미지를 만드는 방법은 무엇입니까?

  13. 13

    Javascript를 사용하여 웹 페이지에 이미지를 업로드하는 방법은 무엇입니까?

  14. 14

    Codeigniter를 사용하여 여러 이미지를 업로드하는 방법은 무엇입니까?

  15. 15

    jquery를 사용하여 이미지를 선택하고 업로드하는 방법은 무엇입니까?

  16. 16

    OpenCV를 사용하여 ROS에지도 이미지를 업로드하는 방법은 무엇입니까?

  17. 17

    SDWebImage를 사용하여 JSON에서 UIImageView로 이미지를로드하는 방법은 무엇입니까?

  18. 18

    Android에서 범용 이미지 로더를 사용하여 비디오 및 이미지 축소판을 표시하는 방법은 무엇입니까?

  19. 19

    QuickBox API를 사용하여 이미지를 다운로드하는 방법은 무엇입니까?

  20. 20

    QuickBox API를 사용하여 이미지를 다운로드하는 방법은 무엇입니까?

  21. 21

    nscache를 사용하여 API에서 이미지를 다운로드하는 방법은 무엇입니까?

  22. 22

    Android에서 이미지의 일부를 버튼 배경으로 사용하는 방법은 무엇입니까?

  23. 23

    Android에서 이미지를 버튼으로 사용하는 방법은 무엇입니까?

  24. 24

    Multipart를 사용하여 이미지 파일을 업로드하는 방법은 무엇입니까?

  25. 25

    Laravel을 사용하여 databae에 이미지를 업로드하는 방법은 무엇입니까?

  26. 26

    Android에서 카메라를 사용하여 로고를 감지하는 방법은 무엇입니까?

  27. 27

    Android Studio에서 사용하지 않는 이미지를 삭제하는 방법은 무엇입니까?

  28. 28

    Android Room을 사용하여 allowmainthreadqueries ()를 사용하지 않는 가장 좋은 방법은 무엇입니까?

  29. 29

    AlertDialog [Android]에서 Intent를 사용하여 웹 페이지를 시작하는 방법은 무엇입니까?

뜨겁다태그

보관