《第一行代码》学习笔记15-UI(4)

1.ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据则会滚动出屏幕。
2.数组中的数据无法直接传递给ListView,得借助适配器来完成。此处使用ArrayAdapter,通过泛型来指定要适配的
数据类型->在构造函数中把要适配的数据传入。
3.ArrayAdapter有多个构造函数的重载,由于提供的数据是字符串,故将ArrayAdapter的泛型指定为String,接着在该构造函数
中依次传入当前上下文,ListView子项布局的id,以及要适配的数据。
4.使用android.R.layout.simple_list_item_1作为ListView 子项布局的id,这是一个Android内置的布局文件,里面只有一个TextView,
可用于简单地显示一段文本。
5.最后,调用ListView的setAdapter()方法,将构建好的适配器对象传递进去,则ListView和数据之间的关联建立完成。
6.getView()方法中有一个convertView参数,该参数用于将之前加载好的布局进行缓存,方便以后重用。
7.为提升ListView的运行效率,在getView()方法中进行判断,(1)如果convertView为空,则使用LayoutInflater去加载布局,(2)
如果不为空,则直接对convertView进行重用。
8.新增一个内部类ViewHolder,用于对控件的实例进行缓存。(1)当convertView为空时,创建了一个ViewHolder对象,将控件的实例
都存放在ViewHolder里->调用View的setTag()方法,将ViewHolder对象存储在View中。(2)当convertView不为空时,调用View的
getTag()方法,把ViewHolder重新取出。如此,所有控件的实例都缓存在ViewHolder里,则没有必要每次都通过findViewById()方法
来获取实例。
9.在布局文件中指定宽高的固定值:px, pt, dp, sp。
(1)px是像素的意思,即屏幕中可以显示的最小元素单元。(2)pt是磅数的意思,1磅等于1/72英寸,一般pt作为字体的单位使用。
###同样200px宽的按钮在不同分辨率的屏幕上显示的效果完全不同,pt的情况和px差不多,这导致这两个单位在手机领域上很难有
作为。
(3)dp是密度无关像素的意思,被称作dip,和px相比,在不同密度的屏幕中显示比例一致。(4)sp可伸缩像素,采用了和dp同样的
设计理念,解决文字大小的适配问题。
10.Android中的密度即屏幕每英寸所包含的像素数,常以dpi为单位。eg.如一个手机屏幕的宽是2英寸长是3英寸,若分辨率是320*480
像素,则密度就为160dpi。密度值越高的屏幕显示的效果就越精细。
11.总结:编写Android程序时,尽量将控件或布局的大小指定成match_parent或wrap_content,若必须指定一个固定值,则使用dp来
作为单位,指定文字大小的时候使用sp作为单位。

原文地址:https://www.cnblogs.com/Iamasoldier6/p/5011725.html