zoukankan      html  css  js  c++  java
  • StaggeredGridView+universal-image-loader载入网路图片实现瀑布流

    StaggeredGridView 开源lib  https://github.com/maurycyw/StaggeredGridView

    文章demo下载地址  http://download.csdn.net/detail/u012303938/8883957

    用imageloder去载入网络图片   用StaggeredGridView去显示实现瀑布流。

    MainActivity

    package com.origamilabs.library;
    
    import java.util.ArrayList;
    import java.util.Collections;
    import java.util.HashMap;
    import java.util.LinkedList;
    import java.util.List;
    import java.util.Map;
    
    import com.example.staggeredgridviewdemo.views.ScaleImageView;
    import com.nostra13.universalimageloader.core.ImageLoader;
    import com.nostra13.universalimageloader.core.assist.ImageLoadingListener;
    import com.nostra13.universalimageloader.core.assist.SimpleImageLoadingListener;
    import com.nostra13.universalimageloader.core.display.FadeInBitmapDisplayer;
    import com.origamilabs.library.views.StaggeredGridView;
    
    import android.app.Activity;
    import android.graphics.Bitmap;
    import android.os.Bundle;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.SimpleAdapter;
    import android.widget.TextView;
    
    public class MainActivity extends Activity{
    	private StaggeredGridView gridView;
    	private ArrayList<Map<String, Object>> list;
    	private Map<String, Object> map;
    	String[] imageUrls = new String[] {
    			"http://file.bmob.cn/M00/D9/44/oYYBAFSGZlyAXZjwAAC5ynS9Zww4985471",
    			"http://file.bmob.cn/M00/D8/8F/oYYBAFSFh_WAB_uIAAB4PTlS6rI0966668",
    			"http://file.bmob.cn/M00/D7/56/oYYBAFSBhJSAIdIJAACoNxTDcM44444974",
    			"http://file.bmob.cn/M00/D9/45/oYYBAFSGZvKAdpqWAACKHHYyClU0459660",
    			"http://file.bmob.cn/M00/D9/45/oYYBAFSGZreAEyRSAADfcLFM62U5428980",
    			"http://file.bmob.cn/M00/D9/44/oYYBAFSGZlyAXZjwAAC5ynS9Zww4985471",
    			"http://file.bmob.cn/M00/D9/44/oYYBAFSGZYqAUYxAAADSNZMdbOs5036914",
    			"http://file.bmob.cn/M00/D9/43/oYYBAFSGZRCATj2XAADDaZB1Nbo6433800",
    			"http://file.bmob.cn/M00/D9/41/oYYBAFSGZJKAWXyDAADPOI8iH6Q3523485",
    			"http://file.bmob.cn/M00/D8/8F/oYYBAFSFiE6AbAu2AACfguCRGHY3486277",
    			"http://file.bmob.cn/M00/D8/8F/oYYBAFSFh_WAB_uIAAB4PTlS6rI0966668",
    			"http://file.bmob.cn/M00/D7/57/oYYBAFSBhd-Aa1IiAAC86WAfmc89917549",
    			"http://file.bmob.cn/M00/D7/56/oYYBAFSBhJSAIdIJAACoNxTDcM44444974",
    			"http://file.bmob.cn/M00/D7/55/oYYBAFSBgiKAC2aGAAC4We1hZmk1405980",
    			"http://file.bmob.cn/M00/D7/56/oYYBAFSBgrmAXQ8BAAD665llCTc5545260",
    			"http://file.bmob.cn/M00/D7/56/oYYBAFSBg-CAePQKAAC38mflwMY8903422"
    			};
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.activity_main);
    		gridView=(StaggeredGridView) findViewById(R.id.gridview);
    gridView.setItemMargin(10); // set the GridView margin
    		
    		gridView.setPadding(10, 0, 10, 0);
    		
    		ImageAdapter adapter=new ImageAdapter();
    		gridView.setAdapter(adapter);
    		adapter.notifyDataSetChanged();
    	}
    	class ImageAdapter extends BaseAdapter {
    	
    		
    
    
    		@Override
    		public View getView(final int position, View convertView,
    				ViewGroup parent) {
    			View view = convertView;
    			final ViewHolder holder;
    			if (convertView == null) {
    				LayoutInflater layoutInflator = LayoutInflater.from(MainActivity.this);
    				view = layoutInflator.inflate(R.layout.item,
    						null);
    				holder = new ViewHolder();
    				holder.image = (ScaleImageView) view.findViewById(R.id.imageView1);
    				view.setTag(holder);
    			} else {
    				holder = (ViewHolder) view.getTag();
    			}
    			ImageLoader.getInstance().displayImage(imageUrls[position],
    					holder.image );
    			return view;
    		}
    
    		@Override
    		public int getCount() {
    			// TODO Auto-generated method stub
    			return imageUrls.length;
    		}
    
    		@Override
    		public Object getItem(int arg0) {
    			// TODO Auto-generated method stub
    			return imageUrls[arg0];
    		}
    
    		@Override
    		public long getItemId(int arg0) {
    			// TODO Auto-generated method stub
    			return arg0;
    		}
    	}
    	private static class ViewHolder {
    		ScaleImageView image;
    	}
    }
    
    通过Tappliacation注冊imageloder
    Tapplication

    package com.origamilabs.library;
    
    import java.io.File;
    
    import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiscCache;
    import com.nostra13.universalimageloader.core.DisplayImageOptions;
    import com.nostra13.universalimageloader.core.ImageLoader;
    import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
    import com.nostra13.universalimageloader.core.assist.QueueProcessingType;
    import com.nostra13.universalimageloader.utils.StorageUtils;
    
    import android.app.Application;
    
    public class Tapplication extends Application{
    @Override
    public void onCreate() {
    	// TODO Auto-generated method stub
    	super.onCreate();
    	File cacheDir = StorageUtils.getOwnCacheDirectory(getApplicationContext(), "imageloader/Cache");//sdk缓存文件
    	DisplayImageOptions defaultOptions = new DisplayImageOptions
    			.Builder()
    	.showImageForEmptyUri(R.drawable.ic_launcher) 
    	.showImageOnFail(R.drawable.ic_launcher) 
    	.cacheInMemory(true)
    	.cacheOnDisc(true)
    	.build();
    	ImageLoaderConfiguration config = new ImageLoaderConfiguration
    			.Builder(getApplicationContext())
    	.discCache(new  UnlimitedDiscCache(cacheDir))
    	.defaultDisplayImageOptions(defaultOptions)
    	.discCacheSize(50 * 1024 * 1024)//
    	.discCacheFileCount(100)//
    	.threadPriority(Thread.NORM_PRIORITY - 2)
    	.denyCacheImageMultipleSizesInMemory()
    	.tasksProcessingOrder(QueueProcessingType.LIFO)
    	.writeDebugLogs()
    	.build();
    	ImageLoader.getInstance().init(config);
    }
    }
    
    剩下的为StaggeredGridView 的lib代码就不粘了

    效果图:



  • 相关阅读:
    Java JMX 监管
    Spring Boot REST(一)核心接口
    JSR 规范目录
    【平衡树】宠物收养所 HNOI 2004
    【树型DP】叶子的颜色 OUROJ 1698
    【匈牙利匹配】无题II HDU2236
    【贪心】Communication System POJ 1018
    【贪心】Moving Tables POJ 1083
    Calling Extraterrestrial Intelligence Again POJ 1411
    【贪心】Allowance POJ 3040
  • 原文地址:https://www.cnblogs.com/lcchuguo/p/5238983.html
Copyright © 2011-2022 走看看