2018-2019-2 20189205《移动平台应用开发实践》第八周作业

Android 学习

ListView

ListView是Android中最重要的组件之一,几乎每个Android应用中都会使用ListView。它以垂直列表的方式列出所需的列表项。

列表显示需要的元素:

  • 1.ListVeiw:用来展示列表的View;
  • 2.适配器: 用来把数据映射到ListView上的中介;
  • 3.数据源: 具体的将被映射的字符串,图片,或者基本组件。

适配器:
适配器是一个连接数据和AdapterView的桥梁,通过它能有效地实现数据与AdapterView的分离设置,使AdapterView与数据的绑定更加简便,修改更加方便。将数据源的数据适配到ListView中的常用适配器有:ArrayAdapter、SimpleAdapter 和 SimpleCursorAdapter。

  • ArrayAdapter最为简单,只能展示一行字;
  • SimpleAdapter有最好的扩充性,可以自定义各种各样的布局,除了文本外,还可以放ImageView(图片)、Button(按钮)、CheckBox(复选框)等等;
  • SimpleCursorAdapter可以认为是SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。但是实际工作中,常用自定义适配器。即继承于BaseAdapter的自定义适配器类。

GridView

GridView是一个在二维可滚动的网格中展示内容的控件。网格中的内容通过使用adapter自动插入到布局中。

常用属性:

  • android:columnWidth:设置列的宽度
  • android:gravity:组件对其方式
  • android:horizontalSpacing:水平方向每个单元格的间距
  • android:verticalSpacing:垂直方向每个单元格的间距
  • android:numColumns:设置列数
  • android:stretchMode:设置拉伸模式,可选值如下:
    • none:不拉伸;
    • spacingWidth:拉伸元素间的间隔空隙
    • columnWidth:仅仅拉伸表格元素自身
    • spacingWidthUniform:既拉元素间距又拉伸他们之间的间隔空隙。

位图处理

Bitmap位图包括像素以及长、宽、颜色等描述信息。长宽和像素位数是用来描述图片的,可以通过这些信息计算出图片的像素占用内存的大小。

位图可以理解为一个画架,把图放到上面然后可以对图片做一些列的处理。

位图文件图像显示效果好,但是非压缩格式,需要占用较大的存储空间。

1 Config:表示图片像素类型,包括ALPHA_8、RGB_565、ARGB_4444、ARGB_8888 A:透明度;RGB分别是Red、Green、Blue,三种原色

  • ARGB_8888:四个通道都是8位,每个像素占用4个字节,图片质量是最高的,但是占用的内存也是最大的;
  • ARGB_4444:四个通道都是4位,每个像素占用2个字节,图片的失真比较严重;
  • RGB_565:没有A通道,每个像素占用2个字节,图片失真小,但是没有透明度;
  • ALPHA_8:只有A通道,每个像素占用1个字节大大小,只有透明度,没有颜色值。
    使用场景总结:ARGB_4444失真严重,基本不用;ALPHA_8使用场景特殊,比如设置遮盖效果等;不需要设置透明度,RGB_565是个不错的选择;既要设置透明度,对图片质量要求又高,就用ARGB_8888。

2 CompressFormat:

  • Bitmap.CompressFormat.JPEG:一种有损压缩(JPEG2000既可以有损也可以无损),".jpg"或者".jpeg"; 优点:采用了直接色,有丰富的色彩,适合存储照片和生动图像效果;缺点:有损,不适合用来存储logo、线框类图。
  • Bitmap.CompressFormat.PNG: 一种无损压缩,".png"; 优点:支持透明、无损,主要用于小图标,透明背景等;缺点:若色彩复杂,则图片生成后文件很大;
  • Bitmap.CompressFormat.WEBPP:以WebP算法进行压缩;Google开发的新的图片格式,同时支持无损和有损压缩,使用直接色。无损压缩,相同质量的webp比PNG小大约26%;有损压缩,相同质量的webp比JPEG小25%-34% 支持动图,基本取代gif
posted @ 2019-04-21 22:07  20189205黄铸君  阅读(192)  评论(0编辑  收藏  举报