《宅男的android开发指南》(翻译)--3

=============================================

完整的在附件中

=============================================

5 使用基于xml的布局Layouts

 

  从技术角度上讲,纯粹使用java代码是可以实现所有的程序的功能的。但是,我们更推荐的是使用xml文件,来完成界面布局等方面的工作。下面,就让我们打开xml文件,看看如何使用xml来进行android的界面绘制吧

 

 长什么样子呢?

 

这里的界面例子,包含一个按钮。

 

 

因为Button虽然我们之前看到的是一个类名,其实我们更可以理解它是由android提供的一个小部件(Widget),既然这样,我们就可以在xml文件中使用这个名字作为标签了。

当然,android不仅只有这一个button小部件了,我们能想象到的所有界面控件都有对应的类名哦~~~

同时,除了使用系统提供的小部件以外,我们也可以自己定义属于自己的小部件。在前面,我们说过,可以把button 看做一个view,没错,只要我们定义一个继承自android.view.View的类,并实现相应的方法,那么ok,我们就定义了属于自己的小部件了。

只不过,没问在引用这个小部件的时候,需要引用完整的类名哦~~

比如: com.allen.android.Mywidget

 

因为我们从java代码中引用这个button,所以我们需要给它定义一个Id,标识符。 通过

Android :id属性,就可以了

同时,在 <button >标签中,系统给我们定义了很多其他好用的属性,比如:、

l       android :text 表示按钮上所显示的文本

l       android :layout_width/height 表示按钮的宽度或者高度

 

@符号表示什么意思?

 

许多小部件或者容器仅仅需要在xml文件中出现,而不需要在java代码中出现,比如一个静态的文本标签(TextView)通常情况下只需要在布局中引用就可以了。你想在java代码引用的话,没有必要使用它的名字等等,只需要id即可。

使用@+id/...作为id的值是很方便的。这里的”...”表示小部件对应的本地的一个唯一不重复的名字。在上面的xml布局文件中。@+id/button 就表示这个button小部件

 

那么如何把这些idjava代码联系起来呢?如何来实现?

 

假如,兄弟你十分艰辛的绘制了一个android的布局,命名为snicklefritz.xml,存放在res/layout文件夹下。接下来,你就要通过代码,来让你的activity按照你这个layout布局。难吗?不。。所有你要做的就是在 onCreate()方法中添加一行代码。

setContentView() 我们之前已经使用过了

 

android内置的这些View视图,只要被你设计到布局的xml文件中去,那么系统就会自动在R.java文件中建立索引。(如果在eclipse看不到变化,可以选中项目,右键选择refresh)这个R文件,是随着你的项目,自动由android为你提供的。不需要没问手动修改。

只要你在res/layout文件夹定义了layout文件。那么都会被R建立索引。你可以通过

R.layout.xxx的方式来引用这个xml文件哦

 

同样,既然你定义了小部件在布局文件中,并给它赋予了idR也会建立索引。要想访问的话,我们只需要简单的通过

findViewById(int id)这个方法就可以了。返回值类型是一个View,根据具体情况,需要进行类型转换哦

  

 

 

6 使用各种基本的小部件(Widget

android中,所有可见的都是View视图。它在

 

这里。。。

但是android中又提供了一个概念:部件(Widget)。

所有部件都是在android.widget包中

这些部件间接或直接的继承自View

 

 

可以看到,widget中提供了我们常见的UI元素。

 

那么,我们来学习下这些ui元素吧

 

 

 

各种文本标签(TextView

 

TextView 小部件,用于显示文本

 

 

文本小部件,拥有的属性简单介绍如下

l       android:typeface :设置文本的字体

l       android:textstyle: 设置文本的样式:粗体,斜体等

l       android:textColor: 设置文本的颜色,使用RGB的格式如:#FF0000

 

 

对应的就是

 

 

 

 

 

显示图片的小部件

 

Android中提供了两种小部件用于查看图片或内嵌图片在Activity中去。

ImageviewImageButton

使用这2个部件的时候,都需要在xml文件中定义android:src属性,确定它所要显示的图片的位置。当然,一般都会关联到一个drawable资源。我们现在只要把drawable理解为:项目中用到的所有本地图片,我们都会放在res/drawable文件夹下,然后通过R的方式来引用。

 

ImageButton,是ImageView的子类。兼具图片视图和按钮的功能。

 

 

 

 

 

下面看下APIDemo中提供的ImageView的例子:

  界面如下

 

 

 

如果想进行文本输入,我们使用EditeView,它是TextView的子类

除了从TextView继承过来的属性,文本编辑框,也有属于自己的好用的属性

l       android:autoText: 设置文本输入框是否具有自动完成的功能

l       android:capitalize:  设置首字母是否是首选的字符

l       android:digits:配置输入框可以既接受的小数点数目

l       android:singleLine:控制是否是单行输入

 

同时,也可以配置更多特色的属性,比如可以通过android:numeric属性,设置只能输入数字,androidpassword设置输入的是密码, androidphonenum设置输入的是电话号码等等。。。当然,如果你想创建自己的输入设置,比如邮编,身份证号码等等,只需要实现

InputMethod这个接口,然后在EditeView中配置:android:inputMehtod即可

 

 

 

下面是个小例子:

 

 

 

 

 

如果你希望在输入文本的时候,能有自动补齐的提示功能的话,你可以选择 AutoCompleteTextView这个部件。后木棉我们还会提到。

 

 

复选按钮:CheckBox

 

 典型的选择按钮,有两种状态:checked,unchecked.

android中提供了CheckBox小部件。它可以显示文本,然后被选择判断。

java代码中,你可以调用到:

l       isChecked() 去判断这个checkbox是否被选中

l       setChecked() 设置checkbox被选中

l       toggle() ,根据状态来选择

 

类似于button,你也可以生成一个监听器对象,来注册并是这个checkbox的状态被监听。

 我们使用 OnCheckedChangeListener

 

 

下面的例子来演示checkbox的事件监听的

 

 

 

 

代码很简答,不做解释了

 

 

 

 

下面是RadioButton,单选按钮

我们可以使用RadioButton作为单选。

CheckBox一样,RadioButton也是继承自 CompounButton这个类,而CompounButton则继承自TextView。因此它也有TextView的常规属性

通常,我们需要把我们的radiobutton放在一个RadioGroup组中去。不然起不到相互排斥的作用。

我们可以在java代码中如下调用:

l       check() 检查是否被选中,通过id  比如
 group.check(R.id.rb1)

l       clearCheck() 清除选中状态

 

l       getCheckedRadioButtonId() 获得被选中的单选按钮的id 。如果没有没选中,则返回 “-1”

 

比如:

 

 

 

 

 

 

 

 

 

 

 

 

 

这些都是View视图

 

所有的小部件,包括刚才看到的,以及没有看到的,都是继承自View这个类。

 

下面列出一些可能会用到的属性

   1: 控制焦点序列的属性

l       android:nextFoucusDown

l       android:nextFocusleft

l       android:nextFocusRight

l       android:nextFocusUp

2: android:visibility  控制小部件是否可见

3androidbackground 设置背景色

 

其他一些有用的方法

  你可以通过设置setEnabled()方法,来设置一个小部件是否可以被获得。而调用isEnabled()方法来判断是否可以获得

  我们可以通过requestFocus()方法,来主动让某一个小部件获得焦点,也可以调用isFocus() 方法,来判断是否获得焦点

 

还可以:

l       getParent()方法来获得上层部件或容器

l       getParentofTtpe()根据特定类系那个来找到某一个部件的上层部件

比如: 通过radiobutton 找到radiogroup

l       findViewById()这个不用说了吧,一直在用

l       getRootView() 获得Activity的最初的视图。比如 setContentView()中设置的那个View就是了

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
毕业设计,基于SpringBoot+Vue+MySQL开发的公寓报修管理系统,源码+数据库+毕业论文+视频演示 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本公寓报修管理系统就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理效率,达到事半功倍的效果。此公寓报修管理系统利用当下成熟完善的Spring Boot框架,使用跨平台的可开发大型商业网站的Java语言,以及最受欢迎的RDBMS应用软件之一的MySQL数据库进行程序开发。公寓报修管理系统有管理员,住户,维修人员。管理员可以管理住户信息和维修人员信息,可以审核维修人员的请假信息,住户可以申请维修,可以对维修结果评价,维修人员负责住户提交的维修信息,也可以请假。公寓报修管理系统的开发根据操作人员需要设计的界面简洁美观,在功能模块布局上跟同类型网站保持一致,程序在实现基本要求功能时,也为数据信息面临的安全问题提供了一些实用的解决方案。可以说该程序在帮助管理者高效率地处理工作事务的同时,也实现了数据信息的整体化,规范化与自动化。 关键词:公寓报修管理系统;Spring Boot框架;MySQL;自动化;VUE
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值