标签:瀑布流
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
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代码就不粘了
效果图:
版权声明:本文为博主原创文章,未经博主允许不得转载。
StaggeredGridView+universal-image-loader加载网路图片实现瀑布流
标签:瀑布流
原文地址:http://blog.csdn.net/u012303938/article/details/46817063