RecycleView 瀑布流 及glide网络加载图片
来源:互联网 发布:内涵段子app 源码 编辑:程序博客网 时间:2024/06/05 18:04
//第一步
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.RecyclerView;
import android.support.v7.widget.StaggeredGridLayoutManager;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import com.bumptech.glide.Glide;
import com.example.recycleview_jinjie.utils.Images;
import java.util.ArrayList;
import java.util.Random;
public class WaterWallActivity extends AppCompatActivity {
private RecyclerView recyclerView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_water_wall);
recyclerView = (RecyclerView) findViewById(R.id.recyclerView);
//瀑布效果
recyclerView.setLayoutManager(new StaggeredGridLayoutManager(3, StaggeredGridLayoutManager.VERTICAL));
recyclerView.setAdapter(new MyAdapter());
}
class MyViewHoler extends RecyclerView.ViewHolder {
public final ImageView iv_water_item;
public MyViewHoler(View itemView) {
super(itemView);
iv_water_item = (ImageView) itemView.findViewById(R.id.iv_water_item);
}
}
class MyAdapter extends RecyclerView.Adapter<MyViewHoler> {
private final ArrayList<Integer> heightList;
public MyAdapter() {
heightList = new ArrayList<>();
Random random = new Random();
for (int i = 0; i < Images.imageUrls.length; i++) {
int height = 100 + random.nextInt(300);
heightList.add(height);
}
}
@Override
public MyViewHoler onCreateViewHolder(ViewGroup parent, int viewType) {
View view = View.inflate(WaterWallActivity.this, R.layout.layout_waterwall, null);
MyViewHoler myViewHoler = new MyViewHoler(view);
return myViewHoler;
}
@Override
public void onBindViewHolder(MyViewHoler holder, int position) {
//获取布局参数
ViewGroup.LayoutParams layoutParams = holder.iv_water_item.getLayoutParams();
//重新设置高度
layoutParams.height=heightList.get(position);
Log.i("AAAA-----","-------"+heightList.get(position));
//重新设置布局参数
holder.iv_water_item.setLayoutParams(layoutParams);
holder.iv_water_item.setScaleType(ImageView.ScaleType.CENTER_CROP);
// holder.iv_water_item.set
// Glide.with(WaterWallActivity.this).load(Images.imageUrls[position]).into(holder.iv_water_item);
// Glide.with(WaterWallActivity.this).load(Images.imageUrls[position]).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).into(holder.iv_water_item);//加载网络图片可以Gif格式
Glide.with(WaterWallActivity.this).load(Images.imageUrls[position]).placeholder(R.mipmap.ic_launcher).error(R.mipmap.ic_launcher).into(holder.iv_water_item);
}@Override
public int getItemCount() {
return Images.imageUrls.length;
}
}
}
//Glide 的工具类
//第二步
package com.example.recycleview_jinjie.utils;
import android.content.Context;
import android.os.Environment;
import com.bumptech.glide.Glide;
import com.bumptech.glide.GlideBuilder;
import com.bumptech.glide.load.engine.cache.DiskLruCacheFactory;
import com.bumptech.glide.load.engine.cache.LruResourceCache;
import com.bumptech.glide.module.GlideModule;
import java.io.File;
/**
* Created by xujiajian on 16/12/27.
*/
public class MyModule implements GlideModule {
@Override
public void applyOptions(Context context, GlideBuilder builder) {
int maxMemory = (int) Runtime.getRuntime().maxMemory();//获取系统分配给应用的总内存大小
int memoryCacheSize = maxMemory / 8;//设置图片内存缓存占用八分之一
//设置内存缓存大小
builder.setMemoryCache(new LruResourceCache(memoryCacheSize));
File cacheDir = Environment.getExternalStorageDirectory();//指定的是数据的缓存地址
int diskCacheSize = 1024 * 1024 * 30;//最多可以缓存多少字节的数据
//设置磁盘缓存大小
builder.setDiskCache(new DiskLruCacheFactory(cacheDir.getPath(), "glide", diskCacheSize));
}
@Override
public void registerComponents(Context context, Glide glide) {
}
}
//配置需要
// 第三步
Build.gradle 添加权限
compile 'com.android.support:recyclerview-v7:24.0.0-alpha2'compile 'com.github.bumptech.glide:glide:3.7.0'
// 第四步
//权限
<uses-permission android:name="android.permission.INTERNET"></uses-permission><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
- RecycleView 瀑布流 及glide网络加载图片
- <八>RecycleView+CardView实现瀑布流(2、加载网络图片)
- <八>RecycleView+CardView实现瀑布流(2、加载网络图片)
- okhttp + RecycleView + Glide 请求网络数据及图片
- recycleview瀑布流Item适应图片
- 瀑布流加载图片
- 使用StaggeredGridLayoutManager瀑布流,Glide显示图片
- 使用MultiColumnPullToRefreshListView实现瀑布流加载网络图片
- 使用MultiColumnPullToRefreshListView实现瀑布流加载网络图片
- RecyclerView瀑布流的形式利用Gilde加载网络图片
- javascript实现瀑布流效果及图片加载样式
- iOS 瀑布流布局 加载网络图片
- RecycleView实现瀑布流
- Recycleview实现瀑布流
- recycleview实现瀑布流
- recycleView 瀑布流
- Android RecycleView瀑布流
- RecycleView 瀑布流中加载更多遇到的问题
- NYOJ289:苹果(01背包入门)
- loadrunner:文本检查点web_reg_find和web_find两个函数的区别
- jquery实现网页定位导航特效
- 扫地机器人就是个鸡肋
- MySQL存储过程事务回滚
- RecycleView 瀑布流 及glide网络加载图片
- 写入日志到文本文件
- Centos6.5 DHCP服务配置
- windows7 64位机上配置支持GPU版(CUDA7.5)的OpenCV2.4.13操作步骤
- 分组查询只保留重复值
- 线程的生命周期
- THINKPHP 3.2.3 widget 调用模板无显示
- [鸟哥的私房菜]笔记:Linux 目录配置
- NodeMcu通过Http请求参数控制