《第一行代码》学习笔记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作为单位。
《第一行代码》学习笔记15-UI(4)的更多相关文章
- 第一行代码阅读笔记---AndroidMainfest.xml分析
按照这本书的指引,我随作者一样创建了一个安卓应用,开始了安卓开发的启程. 找到AndroidMainfest.xml这个文件,打开后看到了我创建的Activity在这个文件里被成功注册,文件内容如下: ...
- 《Android第一行代码》笔记
学习Android开发差点儿相同有两年时间了.期间也做了大大小小的一些项目.近来抽出闲暇想把Android基础强化一下,之前在网上看到了郭霖郭大神的几篇博客.从中受益不少.于是花了近一周时间看完了郭神 ...
- 第一行代码阅读笔记----显示隐式Intent的基本用法
1.显示Intent意图明显,通过Intent启动另外一个活动,这是安卓中各组件进行交互的一种重要方式.一般用于启动活动,启动服务,发送广播等场景. 实现方法,这里我只说思路,实践还是要自己实操才能明 ...
- 第一行代码阅读笔记---详解分析第一个Android程序
以下是我根据作者的思路,创建的第一个Android应用程序,由于工具强大,代码都自动生成了,如下: package com.example.first_app; import android.os.B ...
- python学习笔记1--python简介和第一行代码编写
一.什么是python? python是一种面向对象,解释型语言,它语法简介,容易学习.本节博客就来说说本人学习python的心得体会. 二.python环境安装 目前python版本有python2 ...
- 通过《第一行代码》学习 Android 开发
第一行代码 Android --第 2 版-- 郭霖 著 第 1 章:开始启程--你的第一行 Android 代码 •1.2 手把手带你搭建开发环境 Android Studio 的安装及配置 A ...
- 20172327 2018-2019-1 《第一行代码Android》第一章学习总结
学号 2018-2019-1 <第一行代码Android>第一章学习总结 教材学习内容总结 - Android系统架构: 1.Linux内核层 Android系统是基于Linux内核的,这 ...
- 【java学习系列】 Android第一本书《第一行代码》
开始Java的学习,从Android,开始吧.<第一代码>开始阅读和调试demo例子. 下面是 <第一行代码>的思维导图:
- 学习资料分享(Java第一行代码视频)<susmote.com>
17年买了一本书,第一行代码(JAVA),李兴华编写的. 一开始我是按照书本一页一页的啃,一个点一个点的去学,虽然当时学的有些枯燥,但里面的知识点大部分还是弄的懂,只是一次偶然,因为有点质疑书上写的( ...
- 20172327 2018-2019-1 《第一行代码Android》第二章学习总结
学号 2017-2018-2 <第一行代码Android>第二章学习总结 教材学习内容总结 - 活动是什么: 活动(Activity)是最容易吸引用户的地方,它是一种可以包含用户界面的组件 ...
随机推荐
- Android -------- 网络访问数据
- IPointCollection,ISegmentCollection和IGeometryCollection
Engine 提供了三个主要的几何图形集合接口用于对几何对象的操作,分别是 IPointCollection,ISegmentCollection 和 IGeometryCollection,这些接口 ...
- 第1章 网络编程基础(3)——基本Socket通信
服务器常用模型
- .attr()和.prop()和.css()的区别
是不是新手都会遇到这个问题?遇到过一次,在网上搜一搜,综合成了下面这样.重点参考了dolphin的‘jQuery的attr与prop’, 写的很清楚呢. 一般attribute翻译成中文术语为“特性” ...
- 将含有父ID的列表转成树
我们知道数据库一般是以一个列表(id,pid)的形式保存树的.如何提取这棵树呢?最简单的方法就是根据pid循环查表.但是毫无疑问,这会产生巨大的数据库查询开销. 那么一般建议的方法是一次性将全部相关数 ...
- php 输出昨天,今天,明天是星期几的方法
<?php //php判断某一天是星期几的方法 function getWeek($unixTime=''){ $unixTime=is_numeric($unixTime)?$unixTime ...
- android ioctl fuzz,android 本地提权漏洞 android root
目前正在研究android 三方设备驱动 fuzzer , 也就是下图所说的 ioctl fuzzing, 下图是由keen team nforest 大神发布: 欢迎正在研究此方面的人联系我共同交流 ...
- 解决“您必须先更新GOOGLE play才能运行此应用”的问题
可以手机FQ然后更新,但是这样更新速度很慢,而且google商店上面的版本还是老版本. 正确的方法:去https://www.pushbullet.com/channel-popup?tag=am21 ...
- ural 1017. Staircases
http://acm.timus.ru/problem.aspx?space=1&num=1017 #include <cstdio> #include <cstring&g ...
- 【操作系统】进程间通信(C#)
原文:[操作系统]进程间通信(C#) 08年9月入学,12年7月毕业,结束了我在软件学院愉快丰富的大学生活.此系列是对四年专业课程学习的回顾,索引参见:http://blog.csdn.net/xia ...