• 团队博客13


    Android Glide

      Glide是Android图片的加载与缓存的一个开源的框架。在我们的app中,当手机本地图片比较少的时候可以较快的加载,但是当图片较多时,图片加载的时间就大大增加,另外由于图片的大小不是都一样的,所以我们使用Glide可以使所有图片在图片列表中多可以以相同的大小显示给我们,以达到美观的效果。

    Glide的jar包导入lib文件夹下:

    import com.bumptech.glide.Glide;
    

     Glide框架的使用方法:

    Glide.with(context).load(本地资源).into(imageview);
    

     部分代码:

    private int[] imageTo;
    	private String[] imageFrom;
    	private ViewBinder imageViewBinder;
    	private List<?extends Map<String,?>> imageData;
    	private LayoutInflater imageInflater;
    	private Context context;
    	public HashMap<Integer,Boolean> isSelected;
    	public int resource;
    	
    	static class ViewHolder{  
            CheckBox selected;  
            TextView path;
            TextView date;
            TextView size;
            ImageView image;
        }  
    	public HashMap<Integer,Boolean> getIsSelected()
    	{
    		return isSelected;
    	}
    	
    	@Override
    	public Object getItem(int position) {
    		// TODO Auto-generated method stub
    		return super.getItem(position);
    	}
    	@Override
    	public long getItemId(int position) {
    		// TODO Auto-generated method stub
    		return super.getItemId(position);
    	}
    	//构造器
    	public PictureAdapter(Context context, List<? extends Map<String, ?>> data,
    			int resource, String[] from, int[] to) {
    		super(context, data, resource, from, to);
    		// TODO Auto-generated constructor stub
    
    		this.context=context;
    		this.resource=resource;
    		imageData=data;
    		imageFrom=from;
    		imageTo=to;
    		imageInflater=(LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    		init();
    		
    	}
        
    	private void init()
    	{
    		isSelected=new HashMap<Integer,Boolean>();
    		for(int i=0;i<imageData.size();i++)
    		{
    			isSelected.put(i, false);
    		}
    	}
    	
    	public View getView(final int position,View view,ViewGroup parent)
    	{
    		
    		ViewHolder holder = null;
    		if(null == holder)
    		{
    		   //总是新建一个ViewHolder对象,用来保存每一个listview条目的信息		   
    		   holder = new ViewHolder();
    		   if(null == view)
    		   {
    		       imageInflater = LayoutInflater.from(context);
    		       view = imageInflater.inflate(resource, null);
    		   }
    		   holder.date= (TextView) view.findViewById(R.id.pictureDate);
    		   holder.size = (TextView) view.findViewById(R.id.pictureSize);
    		   holder.selected = (CheckBox) view.findViewById(R.id.choosePicture);
    		   holder.path=(TextView)view.findViewById(R.id.picturePath);
    		   holder.image=(ImageView)view.findViewById(R.id.image);
    		}
    		  
    		Map<String, ?> map = imageData.get(position);
    		if(null != map)
    		{
    		    String date=(String) map.get("date");
    		    String size=(String)map.get("size");
    		    String path=(String)map.get("path");
    		    holder.date.setText(date);
    		    holder.size.setText(size);
    		    holder.path.setText(path);
    		    Glide.with(context).load(new File(path)).into(holder.image);
    		}
    		  
    		//添加checkBox监听
    		holder.selected.setOnCheckedChangeListener(new OnCheckedChangeListener()
    		{
    		   
    		    @Override
    		    public void onCheckedChanged(CompoundButton arg0, boolean isCheck)
    		    {
    		        if(isCheck)
    		        {
    		            isSelected.put(position, true);
    		            //System.out.println("add checked=" + position);
    		        }
    		        else
    		            if(!isCheck)
    		            {
    		                isSelected.put(position, false);
    		                //System.out.println("remove checked=" + position);
    		            }
    		     }
    		 });
    		  
    		//根据isSelected中记录的信息,设置checkbox的状态
    		holder.selected.setChecked(isSelected.get(position));
    		return view;    
    	}	
    

      

  • 相关阅读:
    【memesuite】 FATAL: Template does not contain data section
    可变剪切位点强度计算[自用]
    面试官:分布式环境下,如何实现 Session共享
    MySQL 大表优化方案,收藏了细看
    为什么我们不用数据库生成 ID?
    10 分钟彻底理解 Redis 的持久化和主从复制
    linux系统变为只读,提示Readonly file system的解决办法
    一文读懂MySQL所有日志
    一次简单的 JVM 调优
    读文献BioNet: an RPackage for the functional analysis of biological networks
  • 原文地址:https://www.cnblogs.com/XJXYJ/p/5869943.html
Copyright © 2020-2023  润新知