package net.coding.program.maopao.item; import android.text.Html; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import com.nostra13.universalimageloader.core.DisplayImageOptions; import com.nostra13.universalimageloader.core.assist.ImageScaleType; import net.coding.program.R; import net.coding.program.common.Global; import net.coding.program.common.HtmlContent; import net.coding.program.common.ImageLoadTool; import net.coding.program.maopao.MaopaoListFragment; import org.apmem.tools.layouts.FlowLayout; import java.util.ArrayList; /** * Created by chenchao on 15/3/31. * 有多张图片的控件,比如任务的评论 */ public class ContentAreaMuchImages extends ContentAreaBase { public static DisplayImageOptions imageOptions = new DisplayImageOptions .Builder() .showImageOnLoading(R.drawable.ic_default_image) .showImageForEmptyUri(R.drawable.ic_default_image) .showImageOnFail(R.drawable.ic_default_image) .cacheInMemory(true) .cacheOnDisk(true) .considerExifParams(true) .imageScaleType(ImageScaleType.EXACTLY) .build(); protected ImageLoadTool imageLoad; private View.OnClickListener mOnclickImage; private FlowLayout mFlowLayout; public ContentAreaMuchImages(View convertView, View.OnClickListener onClickContent, View.OnClickListener onclickImage, Html.ImageGetter imageGetterParamer, ImageLoadTool loadParams) { super(convertView, onClickContent, imageGetterParamer); imageLoad = loadParams; // contentMarginBottom = convertView.getResources().getDimensionPixelSize(R.dimen.message_text_margin_bottom); mFlowLayout = (FlowLayout) convertView.findViewById(R.id.flowLayout); mOnclickImage = onclickImage; } public void setDataContent(String s, Object contentObject) { String data = s; Global.MessageParse maopaoData = HtmlContent.parseMessage(data); if (maopaoData.text.isEmpty()) { content.setVisibility(View.GONE); } else { content.setVisibility(View.VISIBLE); content.setText(Global.changeHyperlinkColor(maopaoData.text, imageGetter, Global.tagHandler)); content.setTag(contentObject); } setImageUrl(maopaoData.uris); } protected void setImageUrl(ArrayList<String> uris) { if (uris.size() == 0) { mFlowLayout.setVisibility(View.GONE); mFlowLayout.removeAllViews(); return; } int count = mFlowLayout.getChildCount(); mFlowLayout.setVisibility(View.VISIBLE); if (uris.size() > count) { int need = uris.size() - count; LayoutInflater inflater = LayoutInflater.from(mFlowLayout.getContext()); for (int i = 0; i < need; ++i) { inflater.inflate(R.layout.comment_image, mFlowLayout); mFlowLayout.getChildAt(i).setOnClickListener(mOnclickImage); } } else if (uris.size() < count) { int release = count - uris.size(); for (int i = 0; i < release; ++i) { mFlowLayout.removeViewAt(count - 1 - i); } } for (int i = 0; i < uris.size(); ++i) { ImageView image = (ImageView) mFlowLayout.getChildAt(i); image.setTag(new MaopaoListFragment.ClickImageParam(uris, i, false)); imageLoad.loadImage(image, uris.get(i), imageOptions); } } }