一、指标

把握ConvertView的原理和应用【重点】

把握ViewHolder的原理和应用【重点】

学会创立Activity的个别步骤

学会利用Intent实现界面跳转

学会利用Intent实现界面间传值【重点】

ListView在每次调用getView办法中都要执行2个耗时。

解决方案:在getView办法中应用convertView和ViewHolder

inflate办法耗时:convertView解决

findViewById办法耗时:ViewHolder解决

二、应用ConvertView进行优化

ConvertView工作原理:

Android渲染ListView遵循以下准则:

无论总量多少,Android只渲染以后屏幕的item项。

被渲染过的item项,他的视图对象会被保留到Recycler中,新华如屏幕的item项将从Recycler中间接回去缓存的视图,而不是再通过inflate办法反射获取。

论断:

无论总量多少,Recycler中只须要缓存N+1个视图对象,即可保障整个ListView的显示(N为一屏所显示的item数量)

无论总量多少,inflate办法最多调用N+1次。

三、应用ViewHolder进行二级优化

@Override

public View getView(int position, View convertView, ViewGroup viewGroup) {

ViewHolder holder = null;

if(convertView == null){

convertView = inflater.inflate(R.layout.item, null);

holder = new ViewHolder();

holder.logo = convertView.findViewById(R.id.logo);

holder.title = convertView.findViewById(R.id.title);

holder.version = convertView.findViewById(R.id.version);

holder.size = convertView.findViewById(R.id.size);

convertView.setTag(holder);

}else{

holder = (ViewHolder) convertView.getTag();

}

Map map = list.get(position);

holder.logo.setImageResource((Integer)map.get("logo"));

holder.title.setText((String)map.get("title"));

holder.version.setText((String)map.get("version"));

holder.size.setText((String)map.get("size"));

return convertView;

}

public class ViewHolder {

ImageView logo;

TextView title;

TextView version;

TextView size;

}

ViewHolder的工作原理:

ViewHolder缩小耗时的原理

ViewHolder是一个自定义的类,它存储了通过findViewById获取来的空间对象。

当ConvertView被新建时,ViewHolder也随之一起缓存到Recycler中

当ConvertView被从新利用时,ViewHolder也被随之取出,从而能够间接给各个控件赋值,而无需再次调用findViewById办法。

论断

无论总量多少,findViewById办法最多调用N+1组(N为一屏显示的item数)

android 剩余,关于android:android-剩余部分相关推荐

  1. Unity获取Android手机的RAM和剩余RAM和ROM

    Unity获取Android手机的RAM和剩余RAM和ROM 前言 一.Android工程方法的实现 二.生成aar 三.Untiy中的调用 前言 项目工作需要,在游戏APP运行时,获取当前手机的剩余 ...

  2. android 模板 ui布局,Android UI布局

    一.线性布局-LinearLayout(至上而下布局) 其中 android:orientation="vertical"意思为垂直 方向的线性布局,此处的"vertic ...

  3. 【Android 应用开发】Android 开发错误集锦

    1. eclipse的Device中不显示手机 在eclipse中连接不上手机,出现adb server didn't ACK  fail to start daemon 错误. 出现这种原因是因为a ...

  4. android使组件居中,Android图文居中显示控件使用方法详解

    最近项目中用到了文字图标的按钮,需要居中显示,如果用TextView实现的方式,必须同时设置padding和drawablePadding.如下: android:layout_width=" ...

  5. android app 主界面,android ViewPager实现App主界面Tab菜单页面切换和点击事件

    Tabhost实现页面滑动切换比较麻烦,这里介绍一下viewPage 控件. 实现了三屏滑动带标题点击和tab页面内按钮的的点击事件实现: viewPage  的优点是可以滑动切换缺点是MainAct ...

  6. android屏幕适配流程,Android屏幕适配姿势

    GitHub地址 为什么要屏幕适配? device_framentation.png 统计 碎片化 品牌机型碎片化 屏幕尺寸碎片化 操作系统碎片化 为了保证用户获得一致的用户体验效果,使得某一元素在A ...

  7. android 自动 键盘,关于Android中的软键盘

    InputMethodService为我们的输入法创建了一个Dialog,并且将该Dialog的Window的某些参数(如Gravity)进行了设置,使之能够在底部或者全屏显示.当我们点击输入框时,系 ...

  8. android 底部tab效果,Android 仿微信底部渐变Tab效果

    先来看一下效果图 除了第三个的发现Tab有所差别外,其他的基本还原了微信的底部Tab渐变效果 每个Tab都是一个自定义View,根据ImageView的tint属性来实现颜色渐变效果,tint属性的使 ...

  9. android鸿洋布局,Android基础ConstrainLayout约束布局的介绍和使用

    写在前面:之前稍微复杂的设计实现,我们都可能会借助于嵌套实现,我们知道嵌套越多,性能就越低.而我们布局一般都是在xml里面进行实现,拖拽的话估计现在android开发者都不会去使用.为了提升开发者的可 ...

  10. android内存占用分析,Android App性能评测分析-内存篇

    1.内存了解 在Android App的性能优化的各个部分里,内存方面的知识较多且不易理解,内存的问题绝对是最令人头疼的一部分,需要对内存基础知识.内存分配.内存管理机制等非常熟悉,才能排查问题. 1 ...

最新文章

  1. vs2019装了WDK后,编译其他vc工程,提示无法打开文件msvcprtd.lib
  2. c语言判断素数squ,poj1811——Prime Test//素数判断+整数分解因子
  3. P3804-[模板]后缀自动机【SAM】
  4. opcua协议服务器端口号,opc ua服务器 数据配置
  5. android responsebody转json_SpringBoot 项目开发是如何返回 json 数据以及数据封装
  6. pygame.error: video system not initialized的解决办法
  7. 3进制计算机发展,三进制计算机(中国三进制计算机)
  8. applet 打印的属性和配置
  9. java复习二十一天[多线程终]
  10. Map中的keySet方法
  11. 教你如何鉴别原装和组装线孔耳机
  12. Retrofit使用简介
  13. config语言和config.in文件
  14. ExpandableTextView——一个可折叠的Textview
  15. 2022秋招前端面试题(五)(附答案)
  16. 微信小程序状态码列表
  17. 高德地图-web端根据地理编码和逆地理编码
  18. GD32f303之rs485配置
  19. 科研 | 认知电子战简介
  20. android饼状图简书,自定义 view 练手 - 简单的饼状图

热门文章

  1. 六种方式实现hibernate查询
  2. 已知数组存放一批QQ号码,QQ号码最长为11位,最短为5位String[] strs = {“12345“,“67891“,“12347809933“,“98765432102“,“67891“,“1
  3. OJ1060: 逆序数字(C语言)
  4. windows apche php mysql zend_Windows XP上安装配置 Apache+PHP+Mysql+Zend
  5. 信息奥赛一本通(1325:【例7.4】 循环比赛日程表)
  6. 信息学奥赛一本通(1188:菲波那契数列(2))
  7. Sightseeing Cows(POJ-3621)
  8. Primes on Interval(CF-237C)
  9. 数列分块入门 4(LibreOj-6280)
  10. 高橋君とカード / Tak and Cards(AtCoder-2037)