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

Android仿微信微博多图展示效果

程序员文章站 2024-02-13 21:21:04
1.简介 这是一个用于实现像微信朋友圈和微博的类似的九宫格图片展示控件,通过自定义viewgroup实现,使用方便。 多图根据屏幕适配,单张图片时需要自己指定图片的宽...

1.简介

这是一个用于实现像微信朋友圈和微博的类似的九宫格图片展示控件,通过自定义viewgroup实现,使用方便。
多图根据屏幕适配,单张图片时需要自己指定图片的宽高;

2.使用方法

引用:

compile 'com.w4lle.library:ninelayout:1.0.0'

使用:

在项目的layout文件中添加如下xml即可加入到布局文件

<com.w4lle.library.ninegridlayout
 android:layout_margintop="8dp"
 android:id="@+id/iv_ngrid_layout"
 android:layout_height="wrap_content"
 android:layout_width="match_parent" />

支持 padding 和margin

java api :

写好自己的adapter继承自ninegridadapter:

class adapter extends ninegridadapter {

 public adapter(context context, list list) {
  super(context, list);
 }

 @override
 public int getcount() {
  return (list == null) ? 0 : list.size();
 }

 @override
 public string geturl(int position) {
  return getitem(position) == null ? null : ((image)getitem(position)).geturl();
 }

 @override
 public object getitem(int position) {
  return (list == null) ? null : list.get(position);
 }

 @override
 public long getitemid(int position) {
  return position;
 }

 @override
 public view getview(int i) {
  imageview iv = new imageview(context);
  iv.setscaletype(imageview.scaletype.center_crop);
  iv.setbackgroundcolor(color.parsecolor("#f5f5f5"));
  picasso.with(context).load(geturl(i)).placeholder(new colordrawable(color.parsecolor("#f5f5f5"))).into(iv);
  return iv;
 }
}

代码中使用 :

adapter = new adapter(context, image);
viewholder.ivmore.setadapter(adapter);
viewholder.ivmore.setonitemclicklisterner(new ninegridlayout.onitemclicklisterner() {
 @override
 public void onitemclick(view view, int position) {
  //do some thing
  log.d("onitemclick : " + position);
 }
});

其余api:

setsetgap //设置图片间隔
setdefaultwidth //设置单张图片时的宽度,默认 140 * density
setdefaultheight //设置单张图片时的高度,默认 140 * density

3.效果

Android仿微信微博多图展示效果

github地址: https://github.com/w4lle/ninegridview

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。