头像叠加android_一个简单的可控的头像列表叠加控件

public class SDAvatarListLayout extendsHorizontalScrollView {privateContext context;/*** 存放创建的最大的ImageView集合*/

private ListimageViewList;/*** 默认图片大小*/

private int imageSize = Math.round(SDTransitionUtil.dp2px(50));/*** 默认图片数量*/

private int imageMaxCount = 6;/*** 默认图片偏移百分比 0~1*/

private float imageOffset = 0.3f;publicSDAvatarListLayout(Context context) {this(context, null);

}publicSDAvatarListLayout(Context context, AttributeSet attrs) {this(context, attrs, 0);

}public SDAvatarListLayout(Context context, AttributeSet attrs, intdefStyleAttr) {super(context, attrs, defStyleAttr);this.context =context;

TypedArray ta=getResources().obtainAttributes(attrs, R.styleable.SDAvatarListLayout);

imageMaxCount=ta.getInt(R.styleable.SDAvatarListLayout_image_max_count, imageMaxCount);

imageSize= (int) ta.getDimension(R.styleable.SDAvatarListLayout_image_size, imageSize);

imageOffset=ta.getFloat(R.styleable.SDAvatarListLayout_image_offset, imageOffset);

imageOffset= imageOffset > 1 ? 1: imageOffset;

init();

ta.recycle();

}private voidinit() {

setHorizontalScrollBarEnabled(false);

RelativeLayout relativeLayout= newRelativeLayout(context);int offset = imageSize - (int) (imageSize *imageOffset);

imageViewList= new ArrayList<>(imageMaxCount);for (int i = 0; i < imageMaxCount; i++) {

SDCircleImageView imageView= newSDCircleImageView(context);

imageView.setId(imageView.hashCode()+i);

imageView.setBorderColor(Color.WHITE);

imageView.setBorderWidth(Math.round(SDTransitionUtil.dp2px(1)));

RelativeLayout.LayoutParams params= newRelativeLayout.LayoutParams(imageSize, imageSize);

params.addRule(ALIGN_PARENT_LEFT);

params.setMargins((imageMaxCount- i - 1) * offset, 0, 0, 0);

relativeLayout.addView(imageView, params);

imageViewList.add(imageView);

}

relativeLayout.setLayoutParams(newRelativeLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));this.addView(relativeLayout);

}public voidsetAvatarListListener(ShowAvatarListener listener) {

hideAllImageView();

listener.showImageView(imageViewList);

}public void setAvatarListListener(ListdrawableList) {if (drawableList == null) {return;

}

hideAllImageView();int i = imageMaxCount - 1;for (inturl : drawableList) {

imageViewList.get(i).setImageResource(url);

imageViewList.get(i).setVisibility(VISIBLE);if (i == 0) {break;

}--i;

}

}private voidhideAllImageView() {for(SDCircleImageView head : imageViewList) {

head.setVisibility(View.GONE);

}

}public interfaceShowAvatarListener {void showImageView(ListimageViewList);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值