1.文本视图TextView
TextView 是最基础的文本显示控件,直接继承自View,SDK把TextView设计为EditText、Button两个控件的父类,因为它们都可以在界面上显示文本,不同的是EditText里的文本是可以给用户编辑的,而Button只是多了一个点击事件而已。TextView常用的基本设置方法如下:
- setText:设置文本内容
- setTextColor:设置文本颜色
- setTextSize:设置文本大小
- setTextAppearance:设置文本风格,风格定义在res/styles.xml
- setGravity:设置文本的对齐方式
具体的实现形式如下:
<TextView
android:id="@+id/tv_textView"
android:text="你好,整个世界!"
android:textColor="@color/colorRed"
android:textSize="30dp"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
这样的布局就完全把文字居中显示在TextView中间了,并且还是红色文字。
2.图像视图ImageView
ImageView是图像显示控件,直接继承自View,任何Drawable对象都可以使用ImageView来显示。主要的属性和常用的一些方法如下:
- scaleType:指定图形的拉伸类型,默认是fitCenter。拉伸类型主要有fitXY,fitStart,fitCenter,fitEnd,center,centerCrop等
- src:指定图形来源,src图形按照scaleType拉伸,如果背景图不指定拉伸方向,则以默认方式拉伸
- maxHeight:设置ImageView的最大高度
- maxWidth:设置ImageView的最大宽度
调用的方法:
- setScaleType:设置图形拉伸模型
- setImageDrawable:设置图形的Drawable对象
- setImageResource:设置图形的资源ID
- setImageBitmap:设置图形的位图对象
具体的实现形式如下:
<ImageView
android:id="@+id/iv_imageView"
android:scaleType="centerCrop"
android:src="@drawable/draw_picture"
android:layout_width="120dp"
android:layout_height="120dp" />
图片就像下图一样,整张图片居中是因为外层布局
3.滚动视图ScrollView
手机屏幕空间有限,常常需要上下滑动或水平滑动才能拉出其余页面内容,由于Android的布局节点不支持自行滚动,所以有了滚动视图。滚动视图分为垂直和水平方向两类,其中垂直滚动的视图名是ScrollView,水平滚动视图名是HorizontalScrollView,但使用这个视图需要注意注意:
- 垂直方向滚动时,layout_width 要设置为match_parent,layout_height 要设置成wrap_content,水平方向相反。因为当水平或是垂直滚动时,不能把所需要的宽度或高度限制死了嘛
- 滚动视图节点下面必须且只能挂着一个子布局节点,否则运行时会报错
具体的实现形式如下:
<HorizontalScrollView
android:layout_width="wrap_content"
android:layout_height="100dp">
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="match_parent">
<View
android:layout_width="200dp"
android:layout_height="match_parent"
android:background="#aaffff" />
<View
android:layout_width="600dp"
android:background="#ffff00"
android:layout_height="match_parent"/>
</LinearLayout>
</HorizontalScrollView>
水平滚动视图下方可以见到滚动条:
4.列表视图ListView
ListView允许在页面上分行展示相似的数据界面,如新闻列表、商品列表、书籍列表等,方便用户逐行进行操作,是一个比较友好的界面列表。它的特色属性如下:
- divider:指定分隔线的图形。如需取消隔线,可设置该属性值为@null
- dividerHeight:指定分隔线高度
- headerDividersEnabled:指定是否显示列表开头的分隔线
- footerDividersEnabled:指定是否显示列表末尾的分隔线
ListView实现了3个与适配器相关的方法:
- setAdapter:设置列表项的数据适配器,适配器一般继承BaseAdapter
- setOnItemClickListener:设置列表项的点击事件监听
- setOnItemLongClickListener:设置列表项的长按事件监听器
实现方式就先在values下创建一个arrays的xml文件,然后在ListView中展现出来,具体如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="sort">
<item>亲人</item>
<item>朋友</item>
<item>同学</item>
<item>那个她</item>
</string-array>
</resources>
<ListView
android:id="@+id/lv_listView"
android:entries="@array/sort"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</ListView>
图像展现的如下界面:
当然也可以使用Java语言动态实现,这就需要使用到适配器了,用ArrayAdapter就可以了
5.网格视图GridView
GridView其实说实话就是在ListView的基础上改进了一下,可以实现分行分列显示表格信息,比ListView更适合展示商品清单。它的新增属性如下:
- horizontalSpacing:指定网格项在水平方向的间距
- verticalSpacing:指定网格项在垂直方向的间距
- numColumns:指定列的数目
- stretchMode:指定剩余空间的拉伸模式
- columnWidth:指定每列的宽度,拉伸模式为spacingWidth、spacingWidthUniform时,必须指定列宽