- 浏览: 86781 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (56)
- Flex (10)
- Android SQLite (3)
- Android (16)
- ListView (1)
- Android 多线程 (1)
- Android Google Maps (1)
- Flex 基础 (1)
- Android ImageView (0)
- Android WebService (0)
- Android 杂项 (2)
- Android 主题与样式 (1)
- Android 数据库 (1)
- Android 短信 (2)
- Ubuntu 11.04 for 64 (2)
- SharedPreferences (2)
- manifest (1)
- 杂项 (9)
- Android 网络 (1)
最新评论
-
DUANLESINIAN:
楼主配置文件讲的不清不楚,应该是这样的:<applica ...
在任意位置获取应用程序Context -
andytang_bin:
我QQ 912180974
解决 Android 下载中文文件名问题 -
andytang_bin:
还是不行。 能Q上联系吗?!
解决 Android 下载中文文件名问题
应该说很多的操作系统上面都提供了TreeView空间,实现树形结构,这个树形结构的应用时很广泛的,而Google开发Android的时候出于Android手机是触摸屏幕的考虑,用手指操作树形结构很不方便,从这方面考虑没有提供TreeView的空间,而是只是提供了一个ExpandableListView:android中的二级树型Widget,虽然已经能满足不少的功能需求,例如书签的功能就可以使用这个控件,但是随着应用的不断增多这个就不能满足要求了,例如pdf中左侧的目录的功能,就需要树形结构来实现。下面的这个应用就是基于pdf左侧的目录结构为原型写的,那首先贴上效果图:
这个的思路是:按照类似于“树”的结构组织数据,界面上直接利用大家经常用的listview实现的。下面这个是节点信息的类:
public class PDFOutlineElement {
private String id;//当前节点的id
private String outlineTitle ;//节点上面显示的信息
private boolean mhasParent ; //是否有父节点
private boolean mhasChild ;//是否有孩子节点
private String parent;//父节点的id
private int level;//当前节点所在的层次
}
在这里我想解释一下这个level,是很关键的,他表示的是当前节点所在的层次,不要小看他,正是他帮助我们在界面上显示出来了层次效果,其实这个树形结构并不是树形结构,所有的数据都维护在一个ArrayList里面,某一个节点A下面有子节点B、C,其实A、B、C这三个节点在ArrayList里面是顺序存放的,如果A的层次是level,那个他的子节点的层次是level+1,我们在getView()的时候我们可以不借助系统自动给我们画上,而是可以自己指定他的位置holder.icon.setPadding(25 * (level + 1), holder.icon.getPaddingTop(), 0, holder.icon.getPaddingBottom());,这样他的子节点便具有了缩进的效果。
还有比较关键的点是如何实现“展开”和 “缩回”的效果,其实这个只不过 是当单击摸个节点的时候,如果这个节点下面有子节点而且是“缩回”的,就把他的所有的子节点都从那个ArrayList里面删除调,然后 notifyDataSetChanged(),同理就是“展开”的时候,就是在这个节点后面添加子节点到ArrayList里面,然后 notifyDataSetChanged()。
其实说到这里大家应该知道怎么做了,这个树形结构不是真树,而就是一个ListView,通过往ArryList里面添加删除数据控制信息,通过setPadding()实现缩进
明白了这个思路,我把getView解释一下,大家肯定能做出来
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.outline, null);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.text);
holder.icon = (ImageView) convertView.findViewById(R.id.icon);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
int level = mfilelist.get(position).getLevel();//每次根据节点的层次绘制显示的位置
holder.icon.setPadding(25 * (level + 1), holder.icon
.getPaddingTop(), 0, holder.icon.getPaddingBottom());
holder.icon.setVisibility(View.VISIBLE);
holder.text.setText(mfilelist.get(position).getOutlineTitle());
//如果有孩子而且当前是不是展开的图标设置为“+”号的图标
if (mfilelist.get(position).isMhasChild()
&& (mfilelist.get(position).isExpanded() == false)) {
holder.icon.setImageBitmap(mIconCollapse);
} else if (mfilelist.get(position).isMhasChild()
&& (mfilelist.get(position).isExpanded() == true)) {
//如果有孩子而且当前是不是展开的图标设置为“+”号的图标
holder.icon.setImageBitmap(mIconExpand);
} else if (!mfilelist.get(position).isMhasChild()){
holder.icon.setImageBitmap(mIconCollapse);
holder.icon.setVisibility(View.INVISIBLE);//这里不要设置为GONE,因为GONE不显示而且不占位置的,而INVISIBLE是不显示但是占位置的
}
return convertView;
}
下面是程序的源码下载地址:
http://download.csdn.net/source/3013850
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GaoMatrix/archive/2011/02/08/6174915.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GaoMatrix/archive/2011/02/08/6174915.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GaoMatrix/archive/2011/02/08/6174915.aspx
发表评论
-
Android开发之ListView 适配器(Adapter)优化
2011-05-14 15:56 1012ListView的Adapter的作用如下图所示: Adap ... -
Android软键盘学习InputMethodManager
2011-05-14 11:14 4087当我们在Android提供的EditText中单击的时候,会自 ... -
Android WakeLock
2011-05-12 22:50 1408在Android中,申请WakeLock可以让你的进程持续执行 ... -
Android中的Handler使用总结
2011-04-21 16:37 683在Android的UI开发中,我们经常会使用Handler来控 ... -
Android多线程及异步处理问题 【转载】
2011-04-17 23:53 20091、问题提出 1)为何需要多线程? 2)多线程如何实现? 3) ... -
EditText的属性说明
2011-04-14 11:47 899EditText的属性很多,这 ... -
Android 系统自带的图片
2011-04-14 11:43 1324This is a list of resources in ... -
Android Check GPS is Enabled or Not
2011-04-13 21:21 0在 Android 中, 我们可以使用 LocationMan ... -
Android ListView with Searchbox Sort items
2011-04-13 16:11 0这里我们有一个搜索框, 当它里面的内容与列表项匹配时... ... -
Android ListView Multiple Choice Example
2011-04-13 14:28 0在 Andoird 中 ListView 通常用来显示一个列表 ... -
TextView 不用 ScrollViewe 也可以滚动
2011-04-12 16:13 1030具体步骤: 第一步: xml 文件 <Text ... -
Activity...
2011-04-10 17:03 1109一、常用类: 1. Activity 是最基本的类,它 ... -
Android2.1中的 drawable(hdpi,ldpi,mdpi) 的区别
2011-03-24 21:37 953在之前的版本中,只有一个drawable,而2.1版本中有dr ... -
ADB常用命令
2011-03-24 21:36 965ADB(Android Debug Bridge)是A ... -
在任意位置获取应用程序Context
2011-03-24 21:35 1698在 Android 程序中访问资源时需要提供 Cont ... -
如何控制Android不锁屏
2011-03-22 14:51 2115锁定屏幕对于移动终端来说是非常有必要的,但是对于机顶盒产品 ... -
android Toast大全(五种情形)建立属于你自己的Toast
2011-03-19 18:26 895Toast用于向用户显示一些帮助/提示。下面我做了5中效果, ... -
Android简单数据存储类SharedPreferences详解及实例(通过“记住密码”功能学习SharedPreferences)
2011-03-19 18:23 4177SharedPreferences是Android中存储简单数 ...
相关推荐
【描述】"原来是githup上面的项目,转成eclipse上面运行" 表明该资源来源于GitHub,原始版本可能适用于Android Studio,但通过开发者或社区的努力,已将其转换为适应Eclipse IDE的格式。这对于那些还在使用Eclipse...
本文实例讲述了Android TreeView效果实现方法。分享给大家供大家参考,具体如下: 应该说很多的操作系统上面都提供了TreeView空间,实现树形结构,这个树形结构的应用时很广泛的,而Google开发Android的时候出于...
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
wrf转mp4播放器1.1.1
内容概要:本文档详细介绍了如何在Simulink中设计一个满足特定规格的音频带ADC(模数转换器)。首先选择了三阶单环多位量化Σ-Δ调制器作为设计方案,因为这种结构能在音频带宽内提供高噪声整形效果,并且多位量化可以降低量化噪声。接着,文档展示了具体的Simulink建模步骤,包括创建模型、添加各个组件如积分器、量化器、DAC反馈以及连接它们。此外,还进行了参数设计与计算,特别是过采样率和信噪比的估算,并引入了动态元件匹配技术来减少DAC的非线性误差。性能验证部分则通过理想和非理想的仿真实验评估了系统的稳定性和各项指标,最终证明所设计的ADC能够达到预期的技术标准。 适用人群:电子工程专业学生、从事数据转换器研究或开发的技术人员。 使用场景及目标:适用于希望深入了解Σ-Δ调制器的工作原理及其在音频带ADC应用中的具体实现方法的人群。目标是掌握如何利用MATLAB/Simulink工具进行复杂电路的设计与仿真。 其他说明:文中提供了详细的Matlab代码片段用于指导读者完成整个设计流程,同时附带了一些辅助函数帮助分析仿真结果。
国网台区终端最新规范
《基于YOLOv8的智慧农业水肥一体化控制系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
GSDML-V2.33-LEUZE-AMS3048i-20170622.xml
微信小程序项目课程设计,包含LW+ppt
微信小程序项目课程设计,包含LW+ppt
终端运行进度条脚本
幼儿园预防肺结核教育培训课件资料
python,python相关资源
《基于YOLOv8的智慧校园电动车充电桩状态监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计
deepseek 临床之理性软肋.pdf
SM2258XT量产工具(包含16种程序),固态硬盘量产工具使用
RecyclerView.zip
水务大脑让水务运营更智能(23页)
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
大众捷达轿车前轮制动器设计