android 9宫格布局,android 朋友圈9宫格实现

icon9宫格效果.png

项目优化

2019-10-10

1、有人提出经常new ImageView耗内存, 我现在直接new 9个ImageView,可重复使用这几个ImageView

2、修复图片数量为4/7个的时候,高度没计算正确问题

使用方式

holder.pengYouQuanFlagLayout.setImgList(findBean);

android:id="@+id/find_fragment_pengyouquan"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:layout_marginTop="@dimen/dp_9" />

注意

addView,removeView,都会重新调用onMeasure,onLayout

优化点

onMeasure地方只用来测量高度,onLayout地方只用来布局位置信息

public abstract class PengYouQuanFlagView extends ViewGroup {

protected abstract void displayImage(int position, ImageView imageView, String url);

protected abstract void onClickImage(int position, String url, ImageView imageView, List imgList);

private int customInterval = 15;//默认的间距

private int muiHeight, muiWidth = 0, sinHeight = 0, sinWidth = 0;//多图的时候高度,宽度,单图时候宽高

private List imgList = new ArrayList<>();//图片的集合

private Context mContext = null;

private List imageViewList;

public PengYouQuanFlagView(Context context) {

this(context, null);

}

public PengYouQuanFlagView(Context context, AttributeSet attrs) {

this(context, attrs, 0);

}

public PengYouQuanFlagView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

this.mContex

你可能感兴趣的:(android,9宫格布局)