Android视图的可扩展图形模式

2016-12-20 18:47黄继红刘正余
中国科技博览 2016年25期
关键词:视图

黄继红+刘正余

[摘 要]为实现Android APP在不同分辨率的Android运行平台上能无缝缩放视图内容,Android开发了自己UI工具包。本文通过案例主要介绍了UI包中的各种图形模式的使用方法,主要包括颜色渐变模式,圆角图形模式,Drawable模式,9-patch模式。

[关键词]视图 图形模式 Drawable

中图分类号:TP183 文献标识码:A 文章编号:1009-914X(2016)24-0154-01

1 引言

开发的Android APP运行的设备种类繁多,大相径庭,为了适应这种需求,并给软件开发人员提供高效的开发便利,Android的UI工具包具有更加的灵活性,能够实现在所有设备之间无缝缩放的视图内容。其中,Drawable类就可以创建可扩展图形对象和灵活的动画图形元素,实现与不同设备的任何图有效的关联。本文通过系统的分析Android系统的Drawable背景模式和自定义的Drawable背景模式来了解Android APP如何实现与各种不同的运行设备实现无缝缩放对接[1]。

2 可扩展图形模式

Android视图中背景,如果使用静态图片,需要准备种种尺寸的图片,以适应不同类型的设备,如果视图的大小在发生变化,要求背景图片尺寸也要动态地变化,会给开发人员增添更多的工作,且非常的麻烦。

为了避免以上问题,Android使用了新的技术,即通过一个XML文件中的各种属性元素来描述一个图形,再将这个图形就用于各种不同的用途。该XML文件描述的图形大小可以动态变化以适应不同的需求环境[2]。具体实现有以下几种模式。

2.1颜色渐变模式

颜色渐变模式,是通过几种不同的灰阶实现种不同的颜色渐变效果,主要有Linear渐变模式,Radial渐变模式,Sweep渐变模式。以Linear渐变模式为例。

创建的res/drawable/backgroundgraient.xml文件内容为:

res/drawable/backgroundgraient.xml

< xml version="1.0" encoding="utf-8" >

android:shape="rectangle">

android:startColor="#ffffff"

android:endColor="#000000"

android:type="linear"

android:angle="270" />

然后,在需要的视图中就可以引用该图形。例如,在TextView视图中的设置背景为:android:background="@drawable/ backgroundgraient。

其他两种颜色渐变模式将android:type属性值分别设置为radial和sweep。

2.2圆角图形模式

圆角图形模式,是在XML文件中用若干个小部件组织成一个圆角图形。例如:

首先,创建res/drawable/roundshape.xml文件

< xml version="1.0" encoding="utf-8" >

android:shape="rectangle">

android:color="#ffffff"/>

android:radius="15dip"/>

android:width="5dip"

android:color="#000000"/>

在该示例中,填充色为白色,边框线条是黑色,粗细为5dip,圆角半经为15dip。在任何视图和布局中都可以引用该图形。例如:

在XML文件中的引用,android:background="@drawable/roundshape"。

在java代码中的引用为,View.setBackgroundResource(R.drawable.roundshape)。

2.3 Drawable模式

Drawable模式,通过在XML文件中定义重复的方式平铺小的图片,而不需要在内存中加载大的图片。程序通过设置元素的titleMode属性来创建该模式。该属性值有三种方式:分别是clamp(重复源位图的边缘像素),repreat(纵向和横向平铺),mirror(镜像平铺)。例如:

首先,创建res/drawable/drawablepattern.xml

<?xml version="1.0" encoding="utf-8"?>

android:src="@drawable/smallmap"

android:tileMode="repeat" />

其中,android:src="@drawable/smallmap",为引用的小图片;android:tileMode="repeat",为小图片重复平铺的方式。

其他视图或布局文件,可以引用该视图资源,引用方式,同上。

2.4 9-patch模式

9-patch技术可以将图片横向和纵向同时进行拉伸,且不会使原图片失真。把一张png图分成了9个部分,分别为4个角,4条边,一个中间区域,4个角是不能被拉伸,可以一直保持原来状态,2条水平边和垂直边分别只做水平和垂直拉伸,但只对黑线指定的区域进行拉伸[3]。使用9-patch模式具体方法如下。

首先,制作9-patch图片。打开android-sdk-windows\tools目录下的“draw9patch.bat”文件,然后,将已经制作好的png图片拖拽到draw9patch窗口中。

其次,在视图直接引用该图片资源。例如:

android:layout_width="match_parent"

android:layout_height="100dp"

android:background="@drawable/background9patch" />

其中,background9patc为存储在drawable文件中的background9patc.9.png图片

3 小结

通过上述中案例分析,详细介绍了Android UI工具包中的各种图形模式的使用方法,主要包括颜色渐变模式,圆角图形模式,Drawable模式,9-patch模式,

参考文献:

[1]耿祥义.Android手机程序设计实用教程[M].清华大学出版社.2013.6

[2] 郭志宏. Android应用开发详解[M].电子工业出版社. 2010.

[3] Dave Smith等. Android5.0开发范例代码大全[M].清华大学出版社.2015.9

猜你喜欢
视图
有史以来最详细的火星表面视图上线啦
关于SQL视图优点和缺点的浅探
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
《投影与视图》单元测试题
在Oracle数据库中实现物化视图
Django 框架中通用类视图的用法
你会画左视图吗