/**
* Description: 解决图片错位问题

  • Copyright (c) , 2016, Jansonxu
  • This program is protected by copyright laws.
  • Program Name:Person.java
  • Date: 2016年3月5日
  • @author 李阳
  • @version : 1.0
    */

    //核心步骤
    //① 解决图片错位问题原理无非就是,布局的每一个ImageView 控件
    // 设置一个唯一标签(通常采用url作为标签),图片下载完成后,
    // 根据url 获取控件,将图片设置给这个控件 方法一般写在doPostAc
    // tivity 中 ,采用接口回调可以写在调用异步任务的类中

// a) ImageView.setTag(url);
// b)ImageView = relativeLayout.findViewById(R.id.img_id);
// c) imageView.setImageBitmap(bitmap);

package com.example.adapter;

import java.util.List;

import com.example.cbk1.R;
import com.example.asynctask.DownTask;
import com.example.entity.CbkData;

import android.content.Context;
import android.graphics.Bitmap;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;

public class CbkDataAdapter extends BaseAdapter {

private Context context;private List<CbkData> datas;public CbkDataAdapter(Context context, List<CbkData> datas) {    super();    this.context = context;    this.datas = datas;}@Overridepublic int getCount() {    int count = 0;    if(datas!=null)        count = datas.size();    return count;}@Overridepublic Object getItem(int position) {    return datas.get(position);}@Overridepublic long getItemId(int position) {    return position;}@Overridepublic View getView(int position, View convertView, final ViewGroup parent) {    if(convertView==null){        convertView = LayoutInflater.from(context).inflate(R.layout.item_cbk, parent, false);        ViewHolder holder = new ViewHolder();        holder.imageView = (ImageView) convertView.findViewById(R.id.imageView);        holder.text_title = (TextView) convertView.findViewById(R.id.text_title);        holder.text_info = (TextView) convertView.findViewById(R.id.text_info);        convertView.setTag(holder);    }    final ViewHolder holder = (ViewHolder) convertView.getTag();    //当前要显示的数据    CbkData cbkData = datas.get(position);    String title = cbkData.getTitle();    String source = cbkData.getSource();    String create_time = cbkData.getCreate_time();    String nickname = cbkData.getNickname();    holder.text_title.setText(title);    holder.text_info.setText(source+" "+nickname+" "+create_time);    //获取图片路径    String imageUrl = cbkData.getWap_thumb();    holder.imageView.setTag(imageUrl);//解决图片错位的问题    if(imageUrl.length()<=0)//判断图片路径的长度        //隐藏ImageView        holder.imageView.setVisibility(View.GONE);    else    {        holder.imageView.setVisibility(View.VISIBLE);        holder.imageView.setImageResource(R.drawable.ic_launcher);        //使用异步任务下载图片        new DownTask(DownTask.TYPE_IMAGE,new DownTask.DownBack() {            @Override            public void response(String url,Object obj) {                //根据图片的url从ListView对象中查找ImageView                ImageView imageView = (ImageView) parent.findViewWithTag(url);                if(imageView!=null)                    imageView.setImageBitmap((Bitmap)obj);            }        }).execute(imageUrl);    }    return convertView;}class ViewHolder{    ImageView imageView;    TextView text_title,text_info;}

}

更多相关文章

  1. Android(安卓)RecyclerView使用 及 滑动时加载图片优化方案
  2. Android(安卓)Layout的可视化编辑器Droiddaw
  3. 当ScrollView嵌套RecyclerView 或者EditText的时候,进去页面总会
  4. android获取网络图片
  5. android 读书笔记 1
  6. android 日期控件对话框
  7. Android本地图片上传(拍照+相册)
  8. Android(安卓)高效加载大图片避免OOM
  9. Android(安卓)开发 设置banner圆角,滑动时,图片圆角失效

随机推荐

  1. android mk学习-添加lib包
  2. 简单分析android textview xml 的属性设
  3. android as gradle 使用过称中 错误处理
  4. Parcelable使用(跨进程,Intent传输)
  5. Android 导入工程出现 unable to get sys
  6. Android学习资料精荐
  7. Android百分比下载进度条
  8. 【Android NDK 开发】NDK 交叉编译 ( Ubu
  9. android中DatePicker和TimePicker的使用
  10. Android找出弹状态栏广告的应用