笔记,listview视图总结

 public class HomeEduMoreAdapter extends BaseAdapter {

     private final String TAG = "HomeEduMoreAdapter";

     private static final int TYPE_COMMON = 0;
private static final int TYPE_BL = 1;
private static final int TYPE_NONE = 2;
private static final int TYPE_THREE = 3;
private static final int TYPE_QUESTION = 4;
private int TYPE_COUNT = 5; 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_565).cacheOnDisk(true)
.showImageOnLoading(R.drawable.icon_default)// 设置图片在下载期间显示的图片
.showImageForEmptyUri(R.drawable.icon_default)// 设置图片Uri为空或是错误的时候显示的图片
.showImageOnFail(R.drawable.icon_default)// 设置图片加载/解码过程中错误时候显示的图片
.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.getPic1() == null || edus.getPic1().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();// 精选内容类型
switch (jx) {
default:
Integer imgNum = Integer.parseInt(edus.getImgNum());
if (imgNum != null && imgNum > 0 && imgNum < 3) {
result = TYPE_COMMON;
} else if (imgNum != null && imgNum >= 3) {
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() / 2;
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 para1 = holder.img_content.getLayoutParams();
para1.height = height;
para1.width = width;
holder.img_content.setLayoutParams(para1); 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_content1 = (ImageView) convertView
.findViewById(R.id.img_content1);
holder.img_content2 = (ImageView) convertView
.findViewById(R.id.img_content2);
holder.img_content3 = (ImageView) convertView
.findViewById(R.id.img_content3);
int w = width / 3;
LayoutParams p = holder.img_content1.getLayoutParams();
p.height = (int)(w*0.7f);
p.width = w;
holder.img_content1.setLayoutParams(p); p = holder.img_content2.getLayoutParams();
p.height = (int)(w*0.7f);
p.width = w;
holder.img_content2.setLayoutParams(p); p = holder.img_content3.getLayoutParams();
p.height = (int)(w*0.7f);
p.width = w;
holder.img_content3.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 > 65) {
content = content.substring(0, 65) + "...";
}
holder.tv_content.setMText(content); String title = entity.getTitle();
int tlength = title.length();
if (tlength > 45) {
title = title.substring(0, 45) + "...";
}
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.getPic1() != null
&& !entity.getPic1().equals("")) {
holder.img_content.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic1().trim(), holder.img_content,
options, animateFirstListener);
}
} private void setCase(ViewHolder holder, HomeEdus entity) {
String content = entity.getDesc();
int clength = content.length();
if (clength > 65) {
content = content.substring(0, 65) + "...";
}
holder.tv_content.setMText(content); String title = entity.getTitle();
int tlength = title.length();
if (tlength > 45) {
title = title.substring(0, 45) + "...";
}
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.getPic1() != null
&& !entity.getPic1().equals("")) {
holder.img_content.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic1().trim(), holder.img_content,
options, animateFirstListener);
}
} private void setThree(ViewHolder holder, HomeEdus entity) {
String content = entity.getDesc();
int clength = content.length();
if (clength > 65) {
content = content.substring(0, 65) + "...";
}
holder.tv_content.setMText(content); String title = entity.getTitle();
int tlength = title.length();
if (tlength > 45) {
title = title.substring(0, 45) + "...";
}
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_content1.setImageResource(R.drawable.icon_default);
holder.img_content2.setImageResource(R.drawable.icon_default);
holder.img_content3.setImageResource(R.drawable.icon_default);
if (entity.getPic1() != null
&& !entity.getPic1().equals("")) {
holder.img_content1.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic1().trim(), holder.img_content1,
options, animateFirstListener);
}
if (entity.getPic2() != null
&& !entity.getPic2().equals("")) {
holder.img_content1.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic1().trim(), holder.img_content2,
options, animateFirstListener);
}
if (entity.getPic3() != null
&& !entity.getPic3().equals("")) {
holder.img_content1.setBackground(null);
ImageLoader.getInstance().displayImage(
entity.getPic1().trim(), holder.img_content3,
options, animateFirstListener);
}
} private void setQuestion(ViewHolder holder, HomeEdus entity) {
String content = entity.getDesc();
int clength = content.length();
if (clength > 65) {
content = content.substring(0, 65) + "...";
}
holder.tv_content.setMText(content); String title = entity.getTitle();
int tlength = title.length();
if (tlength > 45) {
title = title.substring(0, 45) + "...";
}
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_content1;
public ImageView img_content2;
public ImageView img_content3;
} 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, 500);
displayedImages.add(imageUri);
}
}
}
} }

    

android listview多视图嵌套多视图的更多相关文章

  1. 详解 anjularjs的ui-route(多视图、视图嵌套、视图传参)

    最近整理了一下anjularjs的第三方插件ui-route,在这就以一个demo的形式讲解一下.整片博客均以开头的demo代码为例.下边是个目录,大家可以酌情直接跳转浏览. 1. demo的代码 2 ...

  2. Android使用Mono c#分段列表视图

    下载source code - 21.7 KB 你想知道如何把多个ListView控件放到一个布局中,但是让它们在显示时表现正确吗 多个列表项?你对它们正确滚动有问题吗?这个例子将向你展示如何组合单独 ...

  3. Android应用开发学习之列表视图

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 列表视图我们会经常用到,可以通过两种方式来创建列表视图,一种方式是直接使用ListView组件创建,另一种方式是通过 ...

  4. <Android>列表、网格、画廊视图及适配器的绑定

    列表视图和适配器的绑定 列表视图既可以使用ListView组件,也可以继承ListActivity.显示可以是ArrayAdapter,也可以是游标SimpleCursorAdapter,还可以是继承 ...

  5. asp.net mvc视图中嵌套分部视图

    asp.net mvc中Layout相当于webForm中母版页,分部视图相当于webForm中的用户控件. 下面例子是一个视图如何嵌套分部视图: A是分部视图,B是一般视图(A,B中的代码省略) 我 ...

  6. Android应用开发学习之表格视图

    作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz 本文我们来学习一个使用表格视图的程序,下图是该程序的运行效果: 该程序主Activity文件内容如下: packag ...

  7. Android 学习手札(三) 视图(View)

    在Android 系统红,任何可视化组件都需要从android.view.View类继承.可以使用两种方式创建View对象. · 一种方式是使用XML来配置View的相关属性,然后使用相应的方法来装载 ...

  8. ui-router多视图+嵌套视图+传参综合练习

    ui-router多视图:页面上存在的多个ui-view,它们以名字区分: 嵌套视图:一个ui-view的一个状态下对应了一个html,这个html里面又有一个ui-view. 视图之间传参:用ui. ...

  9. 使用XIB实现嵌套自定义视图

    在进行iOS开发的过程中,对于一些复杂的界面,我们可以通过Interface Builder这个Xcode集成的可视化界面编辑工具在完成,这回节省大部分时间以及代码量.它的使用方法这里不做介绍了,这次 ...

随机推荐

  1. Crumpet – 使用很简单的响应式前端开发框架

    Crumpet 是一个简单的响应式的基于 SASS/SCSS 的响应式前端框架,保持你的 HTML 代码简洁.内置尽量使用占位符选择器,以减少你的 HTML 标记的大小,没有凌乱的 HTML 代码.快 ...

  2. 谈谈Java程序员进阶的那些知识和方向

    谈谈Java程序员进阶的那些知识和方向 记得前段时间看过一篇文章谈到一种程序员叫野生程序员,战斗力极强,可以搞定一切问题,但是通常看问题抓不到本质,或者说是google/baidu/stackover ...

  3. 简单几步把LOGO变字体

    今天学到一招,所以决定简单写写如何利用图标字体生成器IcoMoon把自己制作的图标变成字体,下面以OSChina的图标为例. 一.确保logo转成纯色,并保存为svg格式 因为OSC的logo是绿色带 ...

  4. 小技巧找出一个php的cron脚本出问题的代码行

    这个小技巧虽然很小,但是很有用. 我写了一个cron脚本,但是隔一天发现,这个昨天的cron脚本还一直在跑着,没有停下来,一定是里面有个程序堵住了. 但是如果我重新跑又需要很多时间.这个怎么办? 现在 ...

  5. 矢量Chart图表嵌入HTML5网络拓扑图的应用

    使用 HT for Web (以下简称 HT)开发HTML5网络拓扑图的开发者有 Chart 需求的项目的时候,感觉很痛苦,HT 集成的 Chart 组件中,并不包含有坐标,在展现方面不是很直观,但是 ...

  6. HTML语义化:HTML5的新标签及IE5.5~9的部分兼容方案

    一.前言 本文将介绍HTML5中新增的语义化标签,及在IE5.5~9(IE9已经开始支持部分HTML5新标签了)支持这些新标签的兼容性处理. 目录一坨: 二.语义化标签:article.aside.t ...

  7. chm转换为html的超简单方法

    在Windows下chm转换为html的超简单方法(反编译CHM文件的方法) 通过调用Windows命令,将chm 文件转换为html 文件. 方法: 命令行(cmd),输入hh -decompile ...

  8. Emit学习(3) - OpCodes - 循环和异常

    本来准备直接进入Dapper的, 但是昨天初步看了一下, 内容不少, Dapper不愧是一款成熟的框架, 里面对各种情况的考虑, 很实用, 不过这也使得我短时间内看不完, 所以得等几天了. 那就先来看 ...

  9. android 开发:shape和selector和layer-list的(详细说明)

    目录(?)[+] Shape 简介 使用的方法 属性 Selector 简介 使用的方法 layer-list 简介 例子 最后   <shape>和<selector>在An ...

  10. WCF Throttling 限流的三道闸口

    WCF Throttling 限流的三道闸口 一.WCF Throttling  流量限制简介 我们期望WCF服务端能够处理尽可能多的并发请求,但是资源是有限的,服务不可能同时处理无限多的并发请求,如 ...