Android listview多視圖嵌套多視圖
更新時(shí)間:2016年02月01日 15:21:18 作者:零點(diǎn)零的距離
這篇文章主要介紹了Android listview多視圖嵌套多視圖 的相關(guān)資料,需要的朋友可以參考下
首先給大家展示下效果圖:
public class HomeEduMoreAdapter extends BaseAdapter { private final String TAG = "HomeEduMoreAdapter"; private static final int TYPE_COMMON = ; private static final int TYPE_BL = ; private static final int TYPE_NONE = ; private static final int TYPE_THREE = ; private static final int TYPE_QUESTION = ; private int TYPE_COUNT = ; private LayoutInflater inflater; private List<HomeEdus> list; private Context context; private DisplayImageOptions options; private ImageLoadingListener animateFirstListener = new AnimateFirstDisplayListener(); public HomeEduMoreAdapter(Context context, List<HomeEdus> objects) { this.context = context; // groupUserDao = new GroupUserDao(context); inflater = LayoutInflater.from(context); list = objects; options = new DisplayImageOptions.Builder().cacheInMemory(true) .imageScaleType(ImageScaleType.IN_SAMPLE_INT) .bitmapConfig(Bitmap.Config.RGB_).cacheOnDisk(true) .showImageOnLoading(R.drawable.icon_default)// 設(shè)置圖片在下載期間顯示的圖片 .showImageForEmptyUri(R.drawable.icon_default)// 設(shè)置圖片Uri為空或是錯(cuò)誤的時(shí)候顯示的圖片 .showImageOnFail(R.drawable.icon_default)// 設(shè)置圖片加載/解碼過程中錯(cuò)誤時(shí)候顯示的圖片 .considerExifParams(true).build(); } @Override public int getCount() { // TODO Auto-generated method stub return list.size(); } @Override public int getViewTypeCount() { // TODO Auto-generated method stub return TYPE_COUNT; } @Override public HomeEdus getItem(int position) { // TODO Auto-generated method stub return list.get(position); } @Override public long getItemId(int postion) { // TODO Auto-generated method stub return postion; } @Override public int getItemViewType(int position) { // TODO Auto-generated method stub HomeEdus edus = getItem(position); String type = edus.getType();// 菜單類型 int result = TYPE_COMMON; switch (type) { case "hx": result = TYPE_COMMON; break; case "wd": if (edus.getPic() == null || edus.getPic().equals("")) { result = TYPE_QUESTION; }else { result = TYPE_COMMON; } break; case "jt": result = TYPE_COMMON; break; case "bl": result = TYPE_BL; break; default: String jx = edus.getType();// 精選內(nèi)容類型 switch (jx) { default: Integer imgNum = Integer.parseInt(edus.getImgNum()); if (imgNum != null && imgNum > && imgNum < ) { result = TYPE_COMMON; } else if (imgNum != null && imgNum >= ) { result = TYPE_THREE; } else { result = TYPE_NONE; } break; } break; } return result; } @Override public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub final HomeEdus model = getItem(position); int type = getItemViewType(position); final ViewHolder holder; if (convertView == null) { holder = new ViewHolder(); WindowManager manager = (WindowManager) context .getSystemService(Context.WINDOW_SERVICE); int width = manager.getDefaultDisplay().getWidth(); int height = manager.getDefaultDisplay().getWidth() / ; switch (type) { case TYPE_COMMON: convertView = inflater.inflate(R.layout.item_home_edus, null); holder.tv_content = (QSTextView) convertView .findViewById(R.id.tv_content); holder.tv_content.setTextColor(Color.GRAY); holder.tv_title = (QSTextView) convertView .findViewById(R.id.tv_title); holder.tv_name = (TextView) convertView .findViewById(R.id.tv_name); // holder.img_head = (CircleImageView) convertView // .findViewById(R.id.img_head); holder.img_content = (ImageView) convertView .findViewById(R.id.img_content); holder.tv_read = (TextView) convertView .findViewById(R.id.tv_read); holder.tv_comment = (TextView) convertView .findViewById(R.id.tv_comment); holder.tv_thumbupNum = (TextView) convertView .findViewById(R.id.tv_thumbupNum); break; case TYPE_QUESTION: convertView = inflater.inflate(R.layout.item_home_question, null); holder.tv_content = (QSTextView) convertView .findViewById(R.id.tv_content); holder.tv_content.setTextColor(Color.GRAY); holder.tv_title = (QSTextView) convertView .findViewById(R.id.tv_title); holder.tv_name = (TextView) convertView .findViewById(R.id.tv_name); holder.tv_read = (TextView) convertView .findViewById(R.id.tv_read); holder.tv_comment = (TextView) convertView .findViewById(R.id.tv_comment); holder.tv_thumbupNum = (TextView) convertView .findViewById(R.id.tv_thumbupNum); break; case TYPE_BL: case TYPE_NONE: convertView = inflater.inflate(R.layout.item_home_case, null); holder.tv_content = (QSTextView) convertView .findViewById(R.id.tv_content); holder.tv_content.setTextColor(Color.GRAY); holder.tv_title = (QSTextView) convertView .findViewById(R.id.tv_title); holder.tv_name = (TextView) convertView .findViewById(R.id.tv_name); holder.img_content = (ImageView) convertView .findViewById(R.id.img_content); LayoutParams para = holder.img_content.getLayoutParams(); para.height = height; para.width = width; holder.img_content.setLayoutParams(para); holder.tv_read = (TextView) convertView .findViewById(R.id.tv_read); holder.tv_comment = (TextView) convertView .findViewById(R.id.tv_comment); holder.tv_thumbupNum = (TextView) convertView .findViewById(R.id.tv_thumbupNum); break; case TYPE_THREE: convertView = inflater.inflate(R.layout.item_home_three, null); holder.tv_content = (QSTextView) convertView .findViewById(R.id.tv_content); holder.tv_content.setTextColor(Color.GRAY); holder.tv_title = (QSTextView) convertView .findViewById(R.id.tv_title); holder.tv_name = (TextView) convertView .findViewById(R.id.tv_name); holder.img_content = (ImageView) convertView .findViewById(R.id.img_content); holder.img_content = (ImageView) convertView .findViewById(R.id.img_content); holder.img_content = (ImageView) convertView .findViewById(R.id.img_content); int w = width / ; LayoutParams p = holder.img_content.getLayoutParams(); p.height = (int)(w*.f); p.width = w; holder.img_content.setLayoutParams(p); p = holder.img_content.getLayoutParams(); p.height = (int)(w*.f); p.width = w; holder.img_content.setLayoutParams(p); p = holder.img_content.getLayoutParams(); p.height = (int)(w*.f); p.width = w; holder.img_content.setLayoutParams(p); holder.tv_read = (TextView) convertView .findViewById(R.id.tv_read); holder.tv_comment = (TextView) convertView .findViewById(R.id.tv_comment); holder.tv_thumbupNum = (TextView) convertView .findViewById(R.id.tv_thumbupNum); break; } convertView.setTag(holder); } else { holder = (ViewHolder) convertView.getTag(); } switch (type) { case TYPE_COMMON: case TYPE_BL: setCommon(holder, model); break; case TYPE_QUESTION: setQuestion(holder,model); break; case TYPE_NONE: setCase(holder, model); break; case TYPE_THREE: setThree(holder, model); break; } return convertView; } private void setCommon(ViewHolder holder, HomeEdus entity) { String content = entity.getDesc(); int clength = content.length(); if (clength > ) { content = content.substring(, ) + "..."; } holder.tv_content.setMText(content); String title = entity.getTitle(); int tlength = title.length(); if (tlength > ) { title = title.substring(, ) + "..."; } holder.tv_title.setMText(title); // int height = holder.tv_title.getHeight(); holder.tv_thumbupNum.setText(entity.getThumbupNum()); holder.tv_read.setText(entity.getReadNum()); holder.tv_comment.setText(entity.getCommentNum()); holder.tv_name.setText(entity.getSourceName()); // if (entity.getHead_img() != null && !entity.getHead_img().equals("")) // { // ImageLoader.getInstance().displayImage(entity.getHead_img().trim(), // holder.img_head, options, animateFirstListener); // } else { // holder.img_head.setImageResource(R.drawable.pic_head_none_login); // } if (entity.getPic() != null && !entity.getPic().equals("")) { holder.img_content.setBackground(null); ImageLoader.getInstance().displayImage( entity.getPic().trim(), holder.img_content, options, animateFirstListener); } } private void setCase(ViewHolder holder, HomeEdus entity) { String content = entity.getDesc(); int clength = content.length(); if (clength > ) { content = content.substring(, ) + "..."; } holder.tv_content.setMText(content); String title = entity.getTitle(); int tlength = title.length(); if (tlength > ) { title = title.substring(, ) + "..."; } holder.tv_title.setMText(title); // int height = holder.tv_title.getHeight(); holder.tv_thumbupNum.setText(entity.getThumbupNum()); holder.tv_read.setText(entity.getReadNum()); holder.tv_comment.setText(entity.getCommentNum()); holder.tv_name.setText(entity.getSourceName()); if (entity.getPic() != null && !entity.getPic().equals("")) { holder.img_content.setBackground(null); ImageLoader.getInstance().displayImage( entity.getPic().trim(), holder.img_content, options, animateFirstListener); } } private void setThree(ViewHolder holder, HomeEdus entity) { String content = entity.getDesc(); int clength = content.length(); if (clength > ) { content = content.substring(, ) + "..."; } holder.tv_content.setMText(content); String title = entity.getTitle(); int tlength = title.length(); if (tlength > ) { title = title.substring(, ) + "..."; } holder.tv_title.setMText(title); // int height = holder.tv_title.getHeight(); holder.tv_thumbupNum.setText(entity.getThumbupNum()); holder.tv_read.setText(entity.getReadNum()); holder.tv_comment.setText(entity.getCommentNum()); holder.tv_name.setText(entity.getSourceName()); holder.img_content.setImageResource(R.drawable.icon_default); holder.img_content.setImageResource(R.drawable.icon_default); holder.img_content.setImageResource(R.drawable.icon_default); if (entity.getPic() != null && !entity.getPic().equals("")) { holder.img_content.setBackground(null); ImageLoader.getInstance().displayImage( entity.getPic().trim(), holder.img_content, options, animateFirstListener); } if (entity.getPic() != null && !entity.getPic().equals("")) { holder.img_content.setBackground(null); ImageLoader.getInstance().displayImage( entity.getPic().trim(), holder.img_content, options, animateFirstListener); } if (entity.getPic() != null && !entity.getPic().equals("")) { holder.img_content.setBackground(null); ImageLoader.getInstance().displayImage( entity.getPic().trim(), holder.img_content, options, animateFirstListener); } } private void setQuestion(ViewHolder holder, HomeEdus entity) { String content = entity.getDesc(); int clength = content.length(); if (clength > ) { content = content.substring(, ) + "..."; } holder.tv_content.setMText(content); String title = entity.getTitle(); int tlength = title.length(); if (tlength > ) { title = title.substring(, ) + "..."; } holder.tv_title.setMText(title); // int height = holder.tv_title.getHeight(); holder.tv_thumbupNum.setText(entity.getThumbupNum()); holder.tv_read.setText(entity.getReadNum()); holder.tv_comment.setText(entity.getCommentNum()); holder.tv_name.setText(entity.getSourceName()); } public void setList(List<HomeEdus> list) { this.list.clear(); this.list.addAll(list); notifyDataSetChanged(); } static class ViewHolder { public QSTextView tv_title; public QSTextView tv_content; public ImageView img_content; public TextView tv_name; public TextView tv_read; public TextView tv_comment; public TextView tv_thumbupNum; public ImageView img_content; public ImageView img_content; public ImageView img_content; } private static class AnimateFirstDisplayListener extends SimpleImageLoadingListener { static final List<String> displayedImages = Collections .synchronizedList(new LinkedList<String>()); @Override public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) { if (loadedImage != null) { ImageView imageView = (ImageView) view; boolean firstDisplay = !displayedImages.contains(imageUri); if (firstDisplay) { FadeInBitmapDisplayer.animate(imageView, ); displayedImages.add(imageUri); } } } } }
您可能感興趣的文章:
- Android中實(shí)現(xiàn)淘寶購物車RecyclerView或LIstView的嵌套選擇的邏輯
- ScrollView嵌套ListView滑動(dòng)沖突的解決方法
- Android ListView的item中嵌套ScrollView的解決辦法
- 關(guān)于Android中ListView嵌套GridView的問題
- Android之ScrollView嵌套ListView和GridView沖突的解決方法
- ListView嵌套GridView使用詳解及注意事項(xiàng)
- 探討:如何在ScrollView中嵌套ListView
- Android筆記之:在ScrollView中嵌套ListView的方法
- Android滑動(dòng)沖突的完美解決
- Android中l(wèi)istview嵌套scrollveiw沖突的解決方法
相關(guān)文章
Android中使用DialogFragment編寫對(duì)話框的實(shí)例教程
這篇文章主要介紹了Android中使用DialogFragment編寫對(duì)話框的實(shí)例教程,DialogFragment也是一種Fragment,因而管理生命周期時(shí)比較給力,需要的朋友可以參考下2016-04-04Android 7.0調(diào)用相機(jī)崩潰詳解及解決辦法
這篇文章主要介紹了 Android 7.0調(diào)用相機(jī)崩潰詳解及解決辦法的相關(guān)資料,需要的朋友可以參考下2016-12-12anndroid使用ViewPager實(shí)現(xiàn)三個(gè)fragment切換
這篇文章主要介紹了anndroid使用ViewPager實(shí)現(xiàn)三個(gè)fragment切換,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-04-04Android快速實(shí)現(xiàn)一個(gè)財(cái)務(wù)APP程序詳解
這篇文章主要介紹了Android實(shí)現(xiàn)的財(cái)務(wù)APP程序,結(jié)合前后端共功能完善,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07Android 仿淘寶、京東商品詳情頁向上拖動(dòng)查看圖文詳情控件DEMO詳解
本文給大家介紹android 仿淘寶、京東商品詳情頁向上拖動(dòng)查看圖文詳情控件DEMO詳解,使用兩個(gè)scrollView,兩個(gè)scrollView 豎直排列,通過自定義viewGroup來控制兩個(gè)scrollView的豎直排列,以及滑動(dòng)事件的處理。對(duì)android 拖動(dòng)查看圖文詳情知識(shí)感興趣的朋友一起學(xué)習(xí)吧2016-09-09