从零开始学android:Android中的基本控件(上)

本章内容较多,下面只贴代码,大家只需要贴到自己eclipse里就知道作用^^!

View组件简介

Android中的View组件包含了几乎所有的图形显示组件,像之前所使用到的TextView和Button实际上都是View类的子类。

部分图形组件

View组件常用属性及对应方法

TextView

TextView组件的主要功能是用于显示文本,实际上这种控件主要就是提供了一个标签的显示操作,此类定义如下:
java.lang.Object
       ↳android.view.View
            ↳android.widget.TextView

<TextView>组件的常用属性及对应方法

配置不使用样式表例子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical" ><TextViewandroid:id="@+id/mytext1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginTop="20dip"android:text="牛儿吃草的博客"android:textColor="#000000"android:textSize="12pt" /><TextViewandroid:id="@+id/mytext2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:layout_marginTop="10dip"android:text="博客:http://blog.csdn.net/e421083458" /><TextViewandroid:id="@+id/mytext3"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_marginLeft="20dip"android:maxLength="8"android:text="richard" /><TextViewandroid:id="@+id/mytext4"android:layout_width="200dip"android:layout_height="29dip"android:background="@drawable/img_100"android:gravity="center_horizontal|center_vertical"android:text="这是在背景上的文字信息"android:textColor="#000000"android:textStyle="bold" /></LinearLayout>

使用样式表:

样式表文件:res/values/styles.xml

<resources xmlns:android="http://schemas.android.com/apk/res/android"><!--Base application theme, dependent on API level. This theme is replacedby AppBaseTheme from res/values-vXX/styles.xml on newer devices.--><style name="AppBaseTheme" parent="android:Theme.Light"><!--Theme customizations available in newer API levels can go inres/values-vXX/styles.xml, while customizations related tobackward-compatibility can go here.--></style><!-- Application theme. --><style name="AppTheme" parent="AppBaseTheme"><!-- All customizations that are NOT specific to a particular API-level can go here. --></style><style name="msg_style"><item name="android:textSize">45px</item><!-- 定义样式文件 --><item name="android:textColor">#FFFF00</item><item name="android:autoLink">all</item>    <!-- 显示文本中的链接 --><item name="android:layout_width">fill_parent</item><item name="android:layout_height">wrap_content</item></style>
</resources>

布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical" ><TextView android:id="@+id/msg"android:layout_width="fill_parent"android:layout_height="fill_parent"android:autoLink="all"android:textColor="#FFFF00"android:textSize="45px"android:text="博客:http://blog.csdn.net/e421083458"        /><TextViewandroid:id="@+id/msg"style="@style/msg_style"android:text="网址:http://hi.baidu.com/amenmen"  /></LinearLayout>

按钮组件:Button

按钮在人机交互截面上使用的是最多的,当提示用户进行某些选择的时候,就可以通过按钮的操作来接收用户的选择。在Android使用“<Button>”组件可以定义出一个显示的按钮,并且可以在按钮上指定相应的显示文字,Button类的继承结构如下:
java.lang.Object
       ↳    android.view.View
            ↳    android.widget.TextView
                 ↳    android.widget.Button

例子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><Buttonandroid:id="@+id/mybut1"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textColor="#FFFF00"android:textSize="12px"android:text="日事日毕日高日清"  /><Button android:id="@+id/mybut2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="网址:www.baidu.com"android:layout_margin="30px"/></LinearLayout>

效果:

编辑框:EditText

文本显示组件(TextView)的功能只是显示一些基础的文字信息,而如果用户要想定义可以输入的文本组件以达到很好的人机交互操作,则只能使用编辑框:EditText完成,此类的定义如下:
java.lang.Object
       ↳    android.view.View
            ↳    android.widget.TextView
                 ↳    android.widget.EditText

例子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><Button android:id="@+id/mybut2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="网址:www.baidu.com"android:layout_margin="30px"/><EditText android:id="@+id/myet1"android:layout_width="fill_parent"android:layout_height='wrap_content'android:text="牛儿吃草"android:selectAllOnFocus="true"/><EditText android:id="@+id/myet2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="网址:http://www.baidu.com/"/><EditText android:id="@+id/myet3"android:layout_width="fill_parent"android:layout_height="wrap_content"android:password="true"android:text="用户登录密码"/><EditText android:id="@+id/myet4"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="1234567890"android:numeric="integer"/>
</LinearLayout>

单选钮:RadioGroup

单选钮在开发中提供了一种多选一的操作模式,也是经常见到的一种组件,例如:在选择文件编码的时候只能从多种编码中选择一种,或者是选择性别的时候只能从“男”或“女”之中选择一个,而在Android中可以使用RadioGroup来定义单选钮组件,此类的定义如下:
java.lang.Object
       ↳    android.view.View
           ↳    android.view.ViewGroup
                 ↳    android.widget.LinearLayout
                      ↳    android.widget.RadioGroup

RadioGroup类的常用操作方法

RadioButton类

RadioGroup提供的只是一个单选钮的容器,只有在此容器之中配置多个按钮组件之后才可以使用,而要想设置单选钮的内容,则需要使用RadioButton类,此类定义如下:
java.lang.Object
       ↳    android.view.View
           ↳    android.widget.TextView
                 ↳    android.widget.Button
                      ↳    android.widget.CompoundButton
                           ↳    android.widget.RadioButton

RadioGroup与RadioButton联合举例:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextView android:id="@+id/encinfo"android:layout_width="fill_parent"android:layout_height="wrap_content"android:textSize="20px"android:layout_margin="10px"android:text="请选择要使用的文字编码"    /><RadioGroup android:id="@+id/encoding"android:layout_width="fill_parent"android:layout_height="wrap_content"android:orientation="vertical"android:checkedButton="@+id/gbk"><RadioButton android:id="@+id/utf"android:text="UTF编码"/><RadioButton android:id="@+id/gbk"android:text="GBK编码"/></RadioGroup>
</LinearLayout>

复选框:CheckBox

CheckBox的主要功能是完成复选框的操作,在用户输入信息的时候,可以一次性选择多个内容,例如:用户在选择个人兴趣爱好的时候一定会存在多个,则此时就直接使用CheckBox即可完成功能。
在Android中如果要想定义复选框,可以使用android.widget.CheckBox类,此类定义如下:
java.lang.Object
       ↳    android.view.View
            ↳    android.widget.TextView
                 ↳    android.widget.Button
                      ↳    android.widget.CompoundButton
                           ↳    android.widget.CheckBox

CheckBox类的常用方法

定义复选框 —— main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextView android:id="@+id/info"android:text="您经常浏览的网站是:"android:textSize="20px"android:layout_width="fill_parent"android:layout_height="wrap_content"/><CheckBox android:id="@+id/url1"android:text="www.baidu.com"android:layout_width="fill_parent"android:layout_height="wrap_content"/><CheckBox android:id="@+id/url2"android:text="www.csdn.net"android:layout_width="fill_parent"android:layout_height="wrap_content"android:checked="true"/><CheckBox android:id="@+id/url3"android:text="www.google.com"android:layout_width="fill_parent"android:layout_height="wrap_content"/></LinearLayout>

通过程序操作复选框组件

package com.richard.radiogroup;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.CheckBox;public class MainActivity extends Activity {private CheckBox box = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);this.box = (CheckBox)  super.findViewById(R.id.url3);box.setChecked(true);box.setText("www.iokokok.com");}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

下拉列表框Spinner

下拉列表框也是一种常见的图形组件,它可以为用户提供列表的选则方式,与复选框或单选钮相比还可以节省手机的屏幕空间,在Android中可以使用android.widget.Spinner类实现,此类定义如下:
java.lang.Object
       ↳ android.view.View
            ↳ android.view.ViewGroup
                 ↳ android.widget.AdapterView<T extends android.widget.Adapter>
                      ↳ android.widget.AbsSpinner
                           ↳ android.widget.Spinner

Spinner类的常用方法

配置列表项

在Android中,可以直接在main.xml文件中定义“<Spinner>”节点,但是在定义此元素的时候却不能直接设置其显示的列表项,关于下拉列表框中的列表项有以下两种方式进行配置:

方式一:直接通过资源文件配置;

创建资源文件:values/city_data.xml

<resources>
<string-array name="city_labels"><item>北京</item><item>上海</item><item>南京</item>
</string-array>
</resources>

创建布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextView android:id="@+id/info_city"android:layout_width="fill_parent"android:layout_height="wrap_content"/><Spinner android:id="@+id/mycity"android:prompt="@string/city_prompt"android:layout_width="fill_parent"android:layout_height="wrap_content"android:entries="@array/city_labels"/>
</LinearLayout>

方式二:通过android.widget.ArrayAdapter类读取资源文件或者是指定具体设置的数据;

首先创建资源文件:values/color_data.xml

<resources>
<string-array name="color_labels"><item>红色</item><item>绿色</item><item>蓝色</item>
</string-array>
</resources>

再创建布局文件:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TextView android:id="@+id/info_city"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="请选择佻喜欢的颜色"/><Spinner android:id="@+id/color_city"android:layout_width="fill_parent"android:layout_height="wrap_content"/><TextView android:id="@+id/myedu"android:layout_width="fill_parent"android:layout_height="wrap_content"android:text="请选择您的学历"/><Spinner android:id="@+id/edu_data"android:layout_width="fill_parent"android:layout_height="wrap_content"/>
</LinearLayout>

编写Activity程序

package com.richard.spinner;import java.util.ArrayList;
import java.util.List;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.ArrayAdapter;
import android.widget.Spinner;public class MainActivity extends Activity {private Spinner spiColor = null;private ArrayAdapter<CharSequence> adapterColor = null;private Spinner spiEdu = null;private ArrayAdapter<CharSequence> adapterEdu = null;private List<CharSequence> dataEdu = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.spiColor = (Spinner) super.findViewById(R.id.color_city);this.spiColor.setPrompt("请选择您喜欢的颜色");this.adapterColor = ArrayAdapter.createFromResource(this, R.array.color_labels, android.R.layout.select_dialog_item);   this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);   //设置列表显示风格this.spiColor.setAdapter(this.adapterColor);this.dataEdu = new ArrayList<CharSequence>();  // 实例化List集合this.dataEdu.add("大学");this.dataEdu.add("研究生");this.dataEdu.add("高中");this.spiEdu = (Spinner) super.findViewById(R.id.edu_data);this.spiEdu.setPrompt("请选择您喜欢的学历");this.adapterEdu = new ArrayAdapter<CharSequence>(this, android.R.layout.simple_spinner_item, this.dataEdu);this.adapterEdu.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);this.spiEdu.setAdapter(this.adapterEdu);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

ImageView组件

ImageView组件的主要功能是为图片展示提供一个容器,android.widget.ImageView类的定义如下:
java.lang.Object
       ↳    android.view.View
            ↳    android.widget.ImageView

ImageView定义的属性及操作方法

编写main.xml文件,定义ImageView组件

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".MainActivity" ><ImageView android:id="@+id/img"android:src="@drawable/ic_launcher"android:layout_width="fill_parent"android:layout_height="wrap_content"/>
</RelativeLayout>

这里讲一下src=@drawable/ic_launcher,这里的ic_launcher其实是res/drawable-hdpi/ic_launcher.png,大家只要知道在这里就行了。

图片按钮:ImageButton

与按钮组件(Button)类似,在Android中又提供了一个图片按钮,可以直接使用ImageButton定义,此类定义如下:
java.lang.Object
       ↳    android.view.View
            ↳    android.widget.ImageView
                 ↳    android.widget.ImageButton

在main.xml文件中定义ImageButton组件

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><ImageButton android:id="@+id/rig"android:src="@drawable/ic_launcher"android:layout_width="wrap_content"android:layout_height="wrap_content"/></LinearLayout>

时间选择器:TimePicker

在Android中使用TimePicker(时间选择器),可以进行时间的快速调整,此类定义如下:
java.lang.Object
       ↳    android.view.View
            ↳    android.view.ViewGroup
                 ↳    android.widget.FrameLayout
                      ↳    android.widget.TimePicker

TimePicker的常用方法

日期选择器:DatePicker

与时间选择器对应的还有一个日期选择器(DatePicker),可以完成年、月、日的设置,此类定义如下:
java.lang.Object
       ↳    android.view.View
            ↳    android.view.ViewGroup
                 ↳    android.widget.FrameLayout
                      ↳    android.widget.DatePicker

DatePicker类的常用方法

TimePicker和DatePicker合并展示的例子:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="fill_parent"android:layout_height="fill_parent"android:orientation="vertical" ><TimePicker android:id="@+id/tpl"android:layout_width="wrap_content"android:layout_height="wrap_content"  /><TimePicker android:id="@+id/tp2"android:layout_width="wrap_content"android:layout_height="wrap_content"  /><DatePicker android:id="@+id/dp1"android:layout_width="wrap_content"android:layout_height="wrap_content"/><DatePicker android:id="@+id/dp2"android:layout_width="wrap_content"android:layout_height="wrap_content"/>
</LinearLayout>

编写Activity程序,将时间变为24小时制 ,设置一个日期 :

package com.richard.timepicker;import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.widget.DatePicker;
import android.widget.TimePicker;public class MainActivity extends Activity {private TimePicker mytp  = null;private DatePicker mydp  = null;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);this.mytp = (TimePicker) super.findViewById(R.id.tp2);this.mytp.setIs24HourView(true);this.mytp.setCurrentHour(18);this.mytp.setCurrentMinute(30);this.mydp = (DatePicker) super.findViewById(R.id.dp2);this.mydp.updateDate(1998,7,27);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}}

其实挺简单的,大家只要敲 一遍就行了。

从零开始学android:Android中的基本控件(上)相关推荐

  1. android开发中为MultiAutoCompleteTextView控件添加其他分隔符

    android开发中为MultiAutoCompleteTextView控件添加其他分隔符,例如:分隔符改为分号";" zs;ls;ww;xm //SemicolonTokeniz ...

  2. Android 布局中 如何使控件居中

    首先要分两种不同情况,在两种不同的布局方式下:LinearLayout 和RelativeLayout 1. LinearLayout a). android:layout_gravity=" ...

  3. Android Studio中Button等控件的Text属性英文默认大写的解决方法

    在 Android Studio 中 xml 里面添加一个 Button.EditText 等控件后,它的 Text总是会显示大写,即使你输入的字符串是小写也不行,控制字符串大小写的属性是androi ...

  4. Android开发中目前流行控件和知识点总结

    1.SlidingMenu 滑动菜单 应用案例:Facebook . Path 2.0 .人人.网易新闻 下载地址: https://github.com/jfeinstein10/SlidingMe ...

  5. 我学Delphi心得与笔记-------在控件上如何禁用Ctrl+V

    项目中用到一个TJamShellList组件,此组件实现绑定查询图片,发现在使用Ctrl+C的同时也可以使用Ctrl+V结果将一个图处复制了多份,这样就不行了:( 于是,想了一个办法,禁用了Ctrl+ ...

  6. Android中的基础控件TextView、Button、ImageView、EditText、ProgressBar

    文章目录 1 Android中的基础控件 1.1 控件的通用属性 2 TextView 2.1 TextView的继承关系 2.2 TextView的常用属性 3 EditText 3.1 常用属性 ...

  7. Android中进度条控件使用

    android中进度条控件使用 ProgressBar pb = findViewById(R.id.pb);pb.setMax(100);pb.setProgress(33); 转载于:https: ...

  8. Android 在布局容器中动态添加控件

    这里,通过一个小demo,就可以掌握在布局容器中动态添加控件,以动态添加Button控件为例,添加其他控件同样道理. 1.addView 添加控件到布局容器 2.removeView 在布局容器中删掉 ...

  9. android自己定义刷新类控件

    android尽管定义了种类很丰富的控件.可是有的时候这些自己定义的控件还是不能满足我的要求,为了可以适配很多其它的需求,我们须要在原有的基础上进行自己定义控件. 今天我向大家介绍的就是android ...

最新文章

  1. 微信小程序教学第二章(含视频):小程序中级实战教程之预备篇 - 封装网络请求及 mock 数据...
  2. 001 JAVA基础
  3. Date类+DateFormat
  4. 恭喜了!5 月逼自己学下这项技能,年薪 35 万起
  5. linux 网络定时断链,客户端连接linux经常间隔性断开链接
  6. JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
  7. ViewState - 页面状态保留
  8. 在线文本代码对比工具
  9. 递归和非递归分别实现求n的阶乘
  10. html在线直播ppt,PPT在HTML网页上播放方法
  11. 整理--Linux驱动框架概念之LED
  12. CentOS 美化记录
  13. 《java程序设计基础》 抽象类
  14. 鼠标移入以及移出时图标背景透明效果
  15. iPhone手机使用:苹果新款手机(iPhone X、iPhone XS Max、iPhone XR等)关机、截屏等快捷键
  16. 【重识前端】闭包与模块
  17. 花了几天时间,总结了一份Python工程师的职业成长路径图
  18. 学会Python就能做游戏脚本开发?别天真了!—— 关于游戏脚本的3个质疑
  19. 红绿灯交通灯控制逻辑电路设计
  20. TCL练习6:通过递归方法搜索文件夹并返回指定后缀文件(包含子目录)

热门文章

  1. 电源模块trim引脚
  2. E+H超声波物位计FMU42
  3. 华为自研系统鸿蒙,全球第一家!魅族官方中午12点宣布:看我力挺华为鸿蒙OS系统崛起...
  4. win7怎么进网络连接服务器未响应,win7 怎么远程连接服务器未响应
  5. element-ui table的选中行高亮和取消高亮
  6. 好一座假山!———初谈岳不群
  7. 科技新品 | 索尼可换镜头Vlog相机;LG电子全球首款卷曲屏电视;卡西欧《吃豆人》合作款数码手表...
  8. 阿里妈妈展示广告召回之多场景建模算法
  9. 乔布斯震撼临终遗言首度公开!
  10. 迪克莫利-PLC之父