Android---仿QQ空间动态九宫格图片预览(一)

}

protected ImageView generateImageView(Context context) {

GridImageView imageView = new GridImageView(context);

imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);

return imageView;

}

}

  • T 是你图片的数据类型, 你可以简单的使用 String 类型也可以是你自定义的类型;

  • 你必须重写 onDisplayImage(Context context, ImageView imageView, T t) 方法去设置显示图片的方式, 你可以使用 Picasso、Glide 、ImageLoader 或者其他的图片加载库,你也可以给 ImageView 设置一个占位图;

  • 如果你需要处理图片的点击事件,你可以重写 onItemImageClick(Context context, int index, List<T> list) 方法,加上你自己的处理逻辑;

  • 如果你要使用自定义的 ImageView,你可以重写 generateImageView(Context context) 方法, 去生成自定的 ImageView

下面是一段示例代码:

private NineGridImageViewAdapter mAdapter = new NineGridImageViewAdapter() {

@Override

protected void onDisplayImage(Context context, ImageView imageView, Photo photo) {

Picasso.with(context)

.load(photo.getSmallUrl)

.placeholder(R.drawable.ic_default_image)

.into(imageView);

}

@Override

protected ImageView generateImageView(Context context) {

return super.generateImageView(context);

}

@Override

protected void onItemImageClick(Context context, int index, List photoList) {

showBigPicture(context, photoList.get(index).getBigUrl());

}

mNineGridImageView.setAdapter(mAdapter);

  1. 给 NineGridImageView 设置图片数据:

nineGridImageView.setImagesData(List imageDataList);

demo代码

MainActivity

package com.huncm.review1;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Context;

import android.os.Bundle;

import android.widget.ImageView;

import android.widget.Toast;

import com.bumptech.glide.Glide;

import com.jaeger.library.StatusBarUtil;

import com.jaeger.ninegridimageview.NineGridImageView;

import com.jaeger.ninegridimageview.NineGridImageViewAdapter;

import java.util.ArrayList;

import java.util.List;

public class MainActivity extends AppCompatActivity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

List list = new ArrayList<>();

list.add(“https://cdn.jsdelivr.net/gh/Yqifei/Blog-Image@master/20211026/image.6719h9mvs700.png”);

list.add(“https://img-blog.csdnimg.cn/img_convert/8dc4978a27ba3ccdaa697c2d7814f3ac.png”);

list.add(“https://img-blog.csdnimg.cn/img_convert/52f5dd5a02ab958c9a2b4daa825925e5.png”);

list.add(“https://cdn.jsdelivr.net/gh/Yqifei/Blog-Image@master/20211026/image.6719h9mvs700.png”);

list.add(“https://img-blog.csdnimg.cn/img_convert/8dc4978a27ba3ccdaa697c2d7814f3ac.png”);

NineGridImageView nineGridImageView = findViewById(R.id.nineGridImageView);

nineGridImageView.setAdapter(myadpter);

nineGridImageView.setImagesData( list);

}

private NineGridImageViewAdapter myadpter = new NineGridImageViewAdapter() {

@Override

protected void onDisplayImage(Context context, ImageV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值