欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  技术分享

Android瀑布流源代码_瀑布流Demo下载

程序员文章站 2021-12-02 19:47:17
...

本例子是一个瀑布流的例子源码、因为本例子的图片都是高清的大图如果是用流量会很费、建议wifi测试、瀑布流的实现是定义三个linearlayout、然后向里面addView()、下面是运行效果、还是很不错的

Android瀑布流源代码_瀑布流Demo下载


如果多了会出现异常、所以做了一些处理

1、lrucache缓存

2、只显示当前屏的图片

3、滑动过程中不加载图片

4、大图缩放成小图、项目编码UTF-8默认编译版本4.4.2注释丰富


查找要添加的column代码

private LinearLayout findColumnToAdd(ImageView iv, int imageHeight) {
	if (mFirstColumnHeight <= mSecondColumnHeight) {
		if (mFirstColumnHeight <= mThirdColumnHeight) {
			iv.setTag(R.string.border_top, mFirstColumnHeight);
			mFirstColumnHeight  = imageHeight;
			iv.setTag(R.string.border_bottom, mFirstColumnHeight);
			return mFirstColumn;
		}
		iv.setTag(R.string.border_top, mThirdColumnHeight);
		mThirdColumnHeight  = imageHeight;
		iv.setTag(R.string.border_bottom, mThirdColumnHeight);
		return mThirdColumn;

	} else {
		if (mSecondColumnHeight <= mThirdColumnHeight) {
			iv.setTag(R.string.border_top, mSecondColumnHeight);
			mSecondColumnHeight  = imageHeight;
			iv.setTag(R.string.border_bottom, mSecondColumnHeight);
			return mSecondColumn;
		}
		iv.setTag(R.string.border_top, mThirdColumnHeight);
		mThirdColumnHeight  = imageHeight;
		iv.setTag(R.string.border_bottom, mThirdColumnHeight);
		return mThirdColumn;
	}
}


加载图片代码

private void loadMoreImages() {
	if (hashSdcard()) {

		// 根据页数加载图片
		int startIndex = page * PAGE_SIZE;
		int endIndex = page * PAGE_SIZE   PAGE_SIZE;

		if (startIndex < mImagesThoumb.imageThumbs.length) {
			if (endIndex > mImagesThoumb.imageThumbs.length) {
				endIndex = mImagesThoumb.imageThumbs.length;
			}
			for (int i = startIndex; i < endIndex; i  ) {
				String imageUrl = mImagesThoumb.imageThumbs[i]
						.toString();
				if (imageUrl != null && !"".equals(imageUrl)) {
					downLoadData(imageUrl);
				}
			}
			page  ;
		} else {
			Toast.makeText(mContext, "没有更多图片了", 0).show();
		}
	} else {
		Toast.makeText(mContext, "无sdcard", 0).show();
	}
}


另外此Demo在加载过多图片的时候还是会有bug、出现闪退的情况、使用的时候可以一下代码、使用universal-image-loader来加载网络图片就好了


最后给贴上Demo的源代码、希望对大家有用、有兴趣的哥们可以下载看看

源代码下载链接: http://dwtedx.com/download.html?bdkey=s/1c0Gu376 密码: fe3h