新版Android开发教程+笔记七--基础UI编程1

合集下载

黑马程序员android开发笔记及源码

黑马程序员android开发笔记及源码

01、什么是3G02、android系统简介03、android背景介绍04、android的framewor简介05、两种虚拟机的比较06、sdk的下载以及简介07、创建android模拟器08、ddms简介09、platform-tools的简介及常见adb指令10、android项目的目录结构11、android下apk安装的过程12、常见的adb指令介绍13、创建模拟器遇到的常见错误14、电话拨号器15、点击事件的四种写法16、短信发送器17、相对布局&单位介绍18、现形布局&布局的组合19、表格布局&绝对布局20、帧布局21、测试相关概念22、android下junit测试框架配置23、logcat简介24、保存文件到手机内存25、android下文件访问的权限26、保存文件到SD卡中27、分析setting源代码获取SD卡大小28、_sharePreference入门29、xml文件的序列化30、采用pull解析xml文件31、采用断电调试的方法观察pull解析的的流程32、android下创建一个sqllite数据库33、sql语句实现数据库的增删改查34、系统api实现数据库的增删改查&Sqlite3工具的使用35、数据库的事物36、listView入门37、采用layoutInflater打气筒创建一个view对象38、采用数据适配器ArryAdapter39、常用数据适配器simpleAdapter40、数据适配器总结41、内容提供者简介42、内容提供者的实现43、短信的备份44、插入一条记录到系统短信应用45、内容观察者46、获取系统的联系人信息47、保存联系人到系统通讯录48、读取联系人的一个小细节49、网络图片查看器50、anr产生的原理&如何避免51、android消息机制入门52、网络html查看器53、字符乱码问题的处理54、采用get方式提交数据到服务器55、采用post方式提交数据到服务器56、提交数据到服务器中文乱码问题的处理57、采用httpclient提交数据到服务器58、异步http框架简介&实现原理59、异步http框架提交数据到服务器60、上传文件到服务器61、smartimageview&常见开源代码62、多线程下载的原理63、多线程断点下载的原理64、多线程java代码移植到android65、多线程下载文本页面的更新66、显示意图激活另一个activity67、隐式意图激活另一个activity68、隐式意图的配置69、隐式意图和显示意图的使用场景70、在不同activity之间数据传递71、activity的声明周期72、activity的启动模式73、activity横竖屏切换的声明周期74、开启新的activity获取他的返回值75、请求码和结果码的作用76、利用广播实现ip拨号77、短信窃听器78、自定义广播时间&发送自定义广播&广播接受者优先级79、采用服务执行长期后台操作80、采用服务窃听电话&服务的声明周期81、android进程优先级&为什么使用服务82、绑定方式开启服务&调用服务的方法83、服务的声明周期(混合开启84、采用aidl绑定远程服务85、代码注册广播接受者&利用广播调用服务的办法86、加载大图片到内存87、获取图片exif信息88、从gallery获取图片89、图片画画板90、扒开美女衣服91、图片的缩放92、图片的旋转93、图片的平移&镜面&倒影效果94、图片的合成95、图片的颜色处理96、多媒体播放api简介97、人脸识别98、mediaplayer的生命周期99、soundpoo简介100、sufaceview的生命周期101、播放在线视频102、视频播放器进度的处理103、调用系统照相机拍照和录像104、采用camera拍照105、常见对话框106、notification入门107、菜单108、android下的样式109、android下的主题110、代码编写ui111、html创建ui112、帧动画113、代码创建创建的tween动画114、xml文件定义动画115、传感器简介116、117、杀死进程118、apk的安装119、应用程序的反编译120、动态创建fragment121、用fragment创建一个选项卡122、fragment的向下兼容性123、fragment的生命周期124、fragment之间的通讯125、应用程序国际化04、android的framewor简介Wap:wait and playWireless Makeup Language(WML)精简的html语言Applications:android自带的基本上层应用Aplication framework:应用程序框架Librarics:Linux lernel:05、两种虚拟机的比较编译后文件格式:jvm:.java->.class->.jardalvik vm:.java->.dex->.odex基于的架构:jvm:基于栈的架构dalvik vm:基于寄存器的架构Cpu直接访问寄存器因此dalvik虚拟机的效率比jvm高06、sdk的下载以及简介->获取sdk工具包(sdk:standard develope kits)->ADT(android develop tools,实际上是eclipse的插件)SDK具体内容Android->SDK Plateform:开发时使用到的jar包->Samples for sdk:->ARM EABI V7a System Image:模拟器运行时的镜像->Intel n86 Aton System:模拟器运行时的镜像->MIPS System Image:模拟器运行时的镜像->google APIs:google提供的jar包,可以直接使用google提供的一些API ->source for android SDK:SDK全部的源代码Extrals:->tools:开发的工具->support library:实现高版本的android向下的兼容->google Admed Ads SDK:gongle提供的广告插件->Analyties App Irackiong SDK:应用的用户分析->cloud message:云消息->gongle play service:收费服务->google USB Driver:真实的设备驱动开发时:基于4.0,兼容2.2、2.3.307、创建android模拟器avd:android virture developerVGA:480*640(电视的标准分辨率)QVGA:240*320(四分之一)HVGA:320*480(一半)WVGA:480*800(width)FWVGA:480*854(更宽)08、ddms简介ddms:模拟器不支持中文,因此发送中文会显示不出来09、platform-tools的简介及常见adb指令Android调试桥:内部实现就是socket让两个系统之间实现数据交互->reset adb:模拟器找不到时候可以重启->adb device:列出所有的连接的设备->adb kill-server:杀死adb调试桥->adb start-server 启动adb调试桥dx.bat:将.class文件打包10、android项目的目录结构一:SDK的目录结构->Samples->Api demo:根据API demo(模拟器上面可以看见)的效果可以在sample中看见相应的代码->Source:jar包所有的sdk源代码都在这个文件夹里->SystemImage:系统镜像->temp:下载更新临时存储的文件夹,一般是空的->tools:emulater.ext 不同版本的模拟器二:New Android Application->theme:留给以后作为扩展,现在并没有太大的作用->target SDK:一般选择高版本,因为高版本对下兼容->mark project as a library:一般不选择,意思是将这个项目提供一个jar包供别人使用三:文件夹目录.setting:设置目录assets:资产目录,存放一些文件,这些文件会被原封不动打包到应用程序的apk中bin:gen:自动生成的目录->builderConfig.java:生成的配置信息->R.java:Android 4.1.2->android.jar开发环境,jar包可以在properties中修改,jar包就是SDK011、Android下apk的安装过程一、Android安装过程分析:->setContentView:甚至view的对象,把里面的xml文件加载到->在project中选择build automaticly会自动把文件生成字节码文件,.class $代表的class文件生成的是内部类->dex.bat文件会把.class文件生成.dex文件->apk压缩文件解压内部内容->META-INF:应用程序的签名eclipse的调试签名文件->res:资源文件->classes.dex:class文件->resources.arsc:资源ID映射->android软件安装的过程:->拷贝xxx.apk带/data/app/xxx-1.apk->在/data/data目录下创建一个文件夹,文件夹名称当前应用程序的报名012、常见adb指令前提:->设备连接上电脑而且驱动安装正常,如果安装不正常的话,会有黄色的问号显示;->设备上打开USB调试;指令:->adb device(如果启动发现这个程序没有安装会自动安装)->adb kill-server->adb start-server->adb uninstall <包名>->adb -s emulator-5554 install c:\\users\\administrator\\hello.apk如果有多个设备的话,如果不指定安装的是哪个设备程序会报错->adb push haha.prop /sdcard/haha.txt 将文件移到(360管家,豌豆荚之类的软件他们也是用的adb指令,倘若电脑上装这些软件的话,会因为两个adb指令抢端口号而挂掉)(adb版本之间兼容不是很好,经常报错可以考虑下版本的问题)->adb shell:远程连接到了android的linux终端ls:显示文件夹ps:显示正在运行的程序ping:网络连通性013、创建模拟器遇到的常见错误->路径最好不要有中文:->应用安装不上,或者安装模拟器的时候开启一个新的模拟器:可能是模拟器的资源被占用,模拟器在运行的时候其实占用着硬盘上面的一个文件,这个文件位于工作空间.android/avd/iphone.avd 里面会有镜像文件,当一个模拟器开启起来了,就给你创建一个文件夹.knock的文件夹,代表着这个模拟器被锁定了,如果把模拟器关掉,就没有程序占据这几个镜像资源了,那么这几个程序就会被自动删除。

Android UI学习笔记

Android UI学习笔记

Android中的像素:(sp作为文字大小的单位,dp(dip)作为其他元素的单位)dip: device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。

px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。

pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用;sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。

由此,根据google的建议,TextView的字号最好使用sp做单位,而且查看TextView的源码可知Android 默认使用sp作为字号单位。

在Android 中,1pt 大概等于2.22sp以上供参考,如果UI 能够以sp为单位提供设计是最好的,如果设计中没有sp的概念,则开发人员也可以通过适当的换算取近似值。

过去,程序员通常以像素为单位设计计算机用户界面。

例如,定义一个宽度为300像素的表单字段,列之间的间距为5个像素,图标大小为16×16像素等。

这样处理的问题在于,如果在一个每英寸点数(dpi)更高的新显示器上运行该程序,则用户界面会显得很小。

在有些情况下,用户界面可能会小到难以看清内容。

与分辨率无关的度量单位可以解决这一问题。

Android支持下列所有单位。

px(像素):屏幕上的点。

in(英寸):长度单位。

mm(毫米):长度单位。

pt(磅):1/72英寸。

dp(与密度无关的像素):一种基于屏幕密度的抽象单位。

在每英寸160点的显示器上,1dp = 1px。

dip:与dp相同,多用于android/ophone示例中。

sp(与刻度无关的像素):与dp类似,但是可以根据用户的字体大小首选项进行缩放。

为了使用户界面能够在现在和将来的显示器类型上正常显示,建议大家始终使用sp作为文字大小的单位,将dip作为其他元素的单位。

AndroidUI界面编程概览

AndroidUI界面编程概览

AndroidUI界面编程概览Android UI界面编程常用控件Android UI界面编程概览本文主要对Android UI 用户界面开放的一些基本概念,均不做深入讲解,但可以快速浏览Android开放经常涉及到的一些基本概念和要素。

一、界面元素1. 窗口:Activity应用程序中每个屏幕显示都通过继承和扩展基类Activity实现分类:基本Activity,带内容的Activity(如ListActivity)2. 对话框:Dialog一种显示于Activity之上的界面元素,由Activity管理,用于显示一些临时信息和功能,它比Activity开销小1) 常用对话框:AlertDialog:信息对话框DatePickerDialog,TimePickerDialog:时间日期选择对话框ProgressDialog:进度对话框还可以设置对话框内容为我们自定义的View2) 相关函数:onCreateDialog():创建对话框的实现showDialog():需要显示的时候调用onPrepareDialog():更改已有对话框时调用3. 菜单:Menu一种显示于Activity之上的界面元素,由Activity管理,用于提供用户一些额外的选项和设置1) 常用菜单:Options Menu:按Menu键时从屏幕底部滑出的菜单Context Menu:用户通过在按件上长按调出它Android UI界面编程常用控件Submenu:用于给菜单分类,可被添加到其它菜单上,不能添加到子菜单上2) 相关函数:onCreateOptionMenu():创建菜单(onCreateContextMenu…)onOptionsItemSelected():处理菜单项的单击事件onPrepareOptionsMenu():动态更新4. 可视化控件:ViewView是可视化控件的基类1) 常用控件:TextView, ImageViewButton, CheckBox, RadioButton, ImageButton, ToggleButtonAnalogClock, DigitalClockEditText, List…2) 数据绑定:adapteradapter将控件(如List, GridView)和复杂数据(如数据,键表)绑定起来5. 其它界面元素标题栏二、layout布局的实现设置控件在屏幕上如何排布1. LinearLayout:线性的布局方式最常用,上下或左右的添加控件2. GridView:网格布局控件按照顺序依次填到每个格子里就好了,使界面很整齐3. TableLayout:表格布局以行列形式管理子控件,每行为一个TableRow,TableRow可添加子控件4. AbsoluteLayout:绝对坐标布局可以让子元素指定准确的x/y坐标值,并显示在屏幕上。

Android+UI界面编程

Android+UI界面编程

Android UI界面编程简述ChateauAerlian布局菜单的生成对话框的生成UI事件处理在Android,有多种方法可以截取用户与应用程序之间的事件交互。

考虑到用户界面上的事件,可以通过用户操作的界面所对应的View对象来获取。

View类提供了相关的方法。

在构建界面布局时,会使用到View类,其中有一些公共的回调函数,对用户界面事件是有用的。

当对应的View 上有事件发生时,这些回调函数将被Android的Framework调用。

例如,一个View(属于一个Button)被触摸点击,onTouchEvent()方法将被调用。

为了去获取该事件,开发者必须扩展这个类,并且重载这个方法。

但是,扩展每一个View对象实例以便去获取事件,这样做是不实际的。

这就是为什么View类也包含一些嵌套的接口,该接口和回调函数一起使用,方便定义。

这些接口叫做事件监听,能通过他们来获取用户与界面的交互。

当经常地使用事件监听时,可能也会需要扩展一个View类,以便去构建一个用户自定义元素。

也许你希望去扩展一个Button类去做一些其他事情。

在该情况下,你将能够通过使用eventhandlers去定义缺省的事件行为。

事件监听一个事件监听是View类中的一个接口,其中包含一个单一的回调方法。

当View监听被注册并被用户操作所触发时,Android框架将调用这些方法。

OnClick()来自View.OnClickListener.,用户点击Item(Touch模式)、提起导航键、按下轨迹球、按下enter 键时触发。

OnLongClick()来自View.OnLongClickListener.,用户长按Item(Touch模式)、长按导航键、长按轨迹球、长按enter键。

OnFocueChange()来自View.OnFocusChangeListener.,用户使用轨迹球或者是导航键去移动光标。

OnKey()来自View.OnKeyListener,用户按下或者释放一个Key设备。

Android移动开发基础教程第2章Android界面开发

Android移动开发基础教程第2章Android界面开发

Android移动开发基础教程第2章Android界面开发Android界面开发是Android移动开发的基础知识之一,它涉及到Android应用程序的用户界面设计和实现。

在本章中,我们将学习如何使用XML布局文件和Java代码来创建和定制Android应用程序的用户界面。

Android应用程序的用户界面主要由Activity和Layout组成。

Activity是应用程序的一个界面,它负责处理用户输入和显示结果。

Layout是用来定义和描述界面上的元素和布局的XML文件。

在Android界面开发中,我们可以使用多种布局类型来实现不同的界面效果。

常见的布局类型包括线性布局、相对布局和帧布局等。

我们可以通过在XML文件中定义布局类型和属性来创建界面布局,并使用Java代码来实现布局的动态调整和交互。

在创建界面布局时,我们可以使用各种视图组件来实现不同的功能和交互效果。

常见的视图组件包括文本框、按钮、图像视图、列表视图和网格视图等。

我们可以在XML布局文件中使用这些视图组件,并使用Java代码来处理它们的事件和动作。

除了布局和视图组件外,Android界面开发还包括一些其他的功能,如主题和样式的定制、动画效果的实现和数据的绑定等。

我们可以通过在XML文件中定义主题和样式来改变应用程序的外观和风格。

我们还可以使用Android提供的动画API来实现界面元素的动态效果。

数据绑定是将数据模型和界面元素绑定在一起,使得数据的变化能够自动更新到界面上。

在Android界面开发中,我们需要考虑不同屏幕尺寸和分辨率的适配问题。

Android提供了多种方式来适配不同屏幕的布局和显示效果,如使用百分比布局和使用不同的资源文件等。

总结起来,Android界面开发是Android移动开发的基础知识之一,它涉及到Android应用程序的用户界面设计和实现。

在本章中,我们学习了如何使用XML布局文件和Java代码来创建和定制Android应用程序的用户界面,包括布局类型、视图组件、主题和样式、动画效果和数据绑定等。

新版Android开发教程+笔记九--基础UI编程3

新版Android开发教程+笔记九--基础UI编程3

封面Android UI编程基础3EditText与TextView共舞setOnKeyListener事件①新建工程②在main.xml布局中添加UI元素:一个EditText和一个TextView<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/><EditTextandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/myEditText"/><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/myTextView"/></LinearLayout>③在mainActivity.java主Activity中修改代码package zyf.EX_Ctrl_1;import android.app.Activity;import android.os.Bundle;import android.view.KeyEvent;import android.view.View;import android.widget.EditText;import android.widget.TextView;public class EX_Ctrl_1extends Activity{private TextView mTextView01;④结果private EditText mEditText01;/**Called when the activity is first created.*/@Overridepublic void onCreate(Bundle savedInstanceState){super .onCreate(savedInstanceState);setContentView(yout.main );/*取得TextView 、EditText */mTextView01=(TextView)findViewById(R.id.myTextView );mEditText01=(EditText)findViewById(R.id.myEditText );/*设置EditText 用OnKeyListener 事件来启动*/mEditText01.setOnKeyListener(new EditText.OnKeyListener(){@Overridepublic boolean onKey(View v ,int keyCode,KeyEvent event){//TODO Auto-generated method stubmTextView01.setText(mEditText01.getText().toString());return false ;}});}}处理EditText 键入事件设计具有背景图的按钮ImageButton 的焦点及事件处理①新建工程准备png 图片资源clickimage.png 、lostfocusimage.png 、onfocusimage.png③在string.xml 中添加字符串④修改main.xml 布局,添加布局元素<?xml version ="1.0"encoding ="utf-8"?><resources ><string name ="app_name">EX_Ctrl_2</string ><string name ="unknown">图片按钮状态:未知</string ><string name ="onfocus">图片按钮状态:Got Focus </string ><string name ="lostfocus">图片按钮状态:Lost Focus </string ><string name ="onclick">图片按钮状态:Got Click </string ><string name ="normalbutton">一般按钮</string ></resources ><?xml version ="1.0"encoding ="utf-8"?><LinearLayout xmlns:android ="/apk/res/android"android:orientation ="vertical"android:layout_width ="fill_parent"android:layout_height ="fill_parent"android:background ="#EE559611"><TextViewandroid:id ="@+id/show_TextView"android:layout_width ="fill_parent"android:layout_height ="wrap_content"android:text ="@string/unknown"/><ImageButtonandroid:id ="@+id/image_Button"android:layout_width="wrap_content"android:layout_height="wrap_content"/><Buttonandroid:id="@+id/normal_Button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/normalbutton"/></LinearLayout>⑤修改mainActivity.javapackage zyf.EX_Ctrl_2;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnFocusChangeListener;import android.widget.Button;import android.widget.ImageButton;import android.widget.TextView;public class EX_Ctrl_2extends Activity{/**Called when the activity is first created.*//*声明三个对象变量(图片按钮,按钮,与TextView)*/private ImageButton mImageButton1;private Button mButton1;private TextView mTextView1;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.main);/*通过findViewById构造三个对象*/mImageButton1=(ImageButton)findViewById(R.id.image_Button);mButton1=(Button)findViewById(R.id.normal_Button);mTextView1=(TextView)findViewById(R.id.show_TextView);/*通过OnFocusChangeListener来响应ImageButton的onFous事件*/mImageButton1.setOnFocusChangeListener(new OnFocusChangeListener(){ public void onFocusChange(View arg0,boolean isFocused){//TODO Auto-generated method stub/*若ImageButton状态为onFocus改变ImageButton的图片并改变textView的文字*/if(isFocused==true){mTextView1.setText(R.string.onfocus);mImageButton1.setImageResource(R.drawable.onfocusimage);⑥结果}/*若ImageButton状态为offFocus改变ImageButton的图片并改变textView的文字*/else{mTextView1.setText(R.string.lostfocus);mImageButton1.setImageResource(R.drawable.lostfocusimage);}}});/*通过onClickListener来响应ImageButton的onClick事件*/mImageButton1.setOnClickListener(new OnClickListener(){public void onClick(View v){//TODO Auto-generated method stub/*若ImageButton状态为onClick改变ImageButton的图片并改变textView的文字*/mTextView1.setText(R.string.onclick);mImageButton1.setImageResource(R.drawable.clickimage);}});/*通过onClickListener来响应Button的onClick事件*/mButton1.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v){//TODO Auto-generated method stub/*若Button状态为onClick改变ImageButton的图片*并改变textView的文字*/mTextView1.setText(R.string.lostfocus);mImageButton1.setImageResource(R.drawable.lostfocusimage);}});}}使用XML 实现按钮改变焦点设置背景图Button 的android:background 属性�设置按钮背景图片:�onFocus()与onClick()事件处理�Item 的android:state_focused 和android:state_pressed 属性�实现①新建工程②准备png 背景图片defaultimage.png 、onfocusimage.png 、clickimage.png③在main.xml 布局中添加一个ImageButton 和一个Button(作对比)clickimage defaultimage.png onfocusimage.png <?xml version ="1.0"encoding ="utf-8"?><LinearLayout xmlns:android ="/apk/res/android"android:orientation ="vertical"android:layout_width ="fill_parent"android:layout_height ="fill_parent"android:background ="#FF25CCDD"><ImageButtonandroid:id ="@+id/image_Button"android:layout_width ="wrap_content"android:layout_height ="wrap_content"<Buttonandroid:text ="Button01"android:id ="@+id/Button01"android:layout_width ="wrap_content"android:layout_height ="wrap_content"></Button ></LinearLayout >④在drawable 文件夹中添加一个advancedbutton.xml 设置<selector>和<item>标签⑤设置ImageButton 的android:background 属性值⑥结果<?xml version ="1.0"encoding ="utf-8"?><selector xmlns:android ="/apk/res/android"><item android:state_focused ="true"android:state_pressed ="false"android:drawable ="@drawable/onfocusimage"/><item android:state_focused ="true"android:state_pressed ="true"android:drawable ="@drawable/clickimage"/><itemandroid:state_focused ="false"android:state_pressed ="true"android:drawable ="@drawable/clickimage"/><item android:drawable ="@drawable/defaultimage"/></selector ><ImageButtonandroid:id ="@+id/image_Button"android:layout_width ="wrap_content"android:layout_height ="wrap_content"android:background ="@drawable/advancedbutton"/>获得焦点时获得焦点并按下失去焦点时默认时利用XML 来改变按钮背景图片给圣诞老人的信息Toast--Android专属浮动小提示①新建工程②在string.xml中添加字符串<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">EX_Ctrl_3</string><string name="dear">亲爱的圣诞老人:</string><string name="sendmyWish">送出愿望</string><string name="yourWish">你的愿望:</string><string name="hasSend">已送达圣诞老人信箱!</string></resources>③在main.xml布局中添加UI元素:一个TextView、一个EditView和一个Button<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/TextView_dear"android:text="@string/dear"></TextView><EditTextandroid:layout_height="wrap_content"android:id="@+id/EditText_Wish"android:layout_width="fill_parent"></EditText><Buttonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/Button_Send"android:text="@string/sendmyWish"android:layout_marginLeft="50px"></Button></LinearLayout>④修改mainActivity.java文件package zyf.EX_Ctrl_3;import android.app.Activity;import android.os.Bundle;import android.text.Editable;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class EX_Ctrl_3extends Activity{/**Called when the activity is first created.*//*声明两个对象变量(按钮与编辑文字)*/private Button mButton;private EditText mEditText;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.main);/*通过findViewById()取得对象*/mButton=(Button)findViewById(R.id.Button_Send);mEditText=(EditText)findViewById(R.id.EditText_Wish);/*设置onClickListener给Button对象聆听onClick事件*/mButton.setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v){//TODO Auto-generated method stub/*声明字符串变量并取得用户输入的EditText字符串*/Editable Str;Str=mEditText.getText();/*使用CharSequence类getString()方法从XML中获取String*/CharSequence string2=getString(R.string.yourWish);CharSequence string3=getString(R.string.hasSend);/*使用系统标准的makeText()方式来产生Toast信息*/Toast.makeText(EX_Ctrl_3.this,string2+Str.toString()+string3,Toast.LENGTH _LONG).show();/*清空EditText*/mEditText.setText("");}});}}⑤结果Toast--显示View的提示Toast显示一个ImageView①新建工程②在drawable文件夹中添加一副png图片:argon.png③修改mainActivity.java文件package zyf.EX_Ctrl_3_B;import android.app.Activity;import android.os.Bundle;import android.widget.ImageView;import android.widget.Toast;public class EX_Ctrl_3_B extends Activity{ /**Called when the activity is first created.*/ @Overridepublic void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);/*设置主屏布局*/setContentView(yout.main);/*创建新Toast对象*/Toast showImageToast=new Toast(this);/*创建新ImageView对象*/ImageView imageView=new ImageView(this);/*从资源中获取图片*/imageView.setImageResource(R.drawable.argon);/*设置Toast上的View--(ImageView)*/showImageToast.setView(imageView);/*设置Toast显示时间*/showImageToast.setDuration(Toast.LENGTH_LONG);/*显示Toast*/showImageToast.show();}}④结果Toast显示一个Button①新建工程②修改mainActivity.java文件package zyf.EX_Ctrl_3_B;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.Toast;public class EX_Ctrl_3_B extends Activity{ /**Called when the activity is first created.*/ @Overridepublic void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);/*设置主屏布局*/setContentView(yout.main);/*创建新Toast对象*/Toast showImageToast=new Toast(this);///*新建Button对象*/Button button=new Button(this);button.setText("OK");/*设置Toast上的View--(Button)*/showImageToast.setView(button);/*设置Toast显示时间*/showImageToast.setDuration(Toast.LENGTH_LONG);/*显示Toast*/showImageToast.show();}}③结果Toast显示一个TextView①新建工程②修改mainActivity.java文件package zyf.EX_Ctrl_3_B;import android.app.Activity;import android.os.Bundle;import android.widget.TextView;import android.widget.Toast;public class EX_Ctrl_3_B extends Activity{ /**Called when the activity is first created.*/ @Overridepublic void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState);/*设置主屏布局*/setContentView(yout.main);/*创建新Toast对象*/Toast showImageToast=new Toast(this);/*新建TextView对象*/TextView text=new TextView(this);/*设置TextView内容*/text.setText("显示在Toast中的TextView");/*设置Toast上的View--(TextView)*/showImageToast.setView(text);/*设置Toast显示时间*/showImageToast.setDuration(Toast.LENGTH_LONG);/*显示Toast*/showImageToast.show();}}③结果AlertDialog.Builder 提示对话框①新建工程②修改mainActivity.java 文件③结果package zyf.EX_Ctrl_3_B;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;public class EX_Ctrl_3_B extends Activity {/**Called when the activity is first created.*/@Overridepublic void onCreate(Bundle savedInstanceState){super .onCreate(savedInstanceState);/*设置主屏布局*/setContentView(yout.main );/*新建一个AlertDialog.Builder 对象*/AlertDialog.Builder my_ADialog =new AlertDialog.Builder(this );/*设置标题*/my_ADialog.setTitle("Android 提示");/*设置显示消息*/my_ADialog.setMessage("AlertDialog.Builder 提示对话框消息!!");/*显示*/my_ADialog.show();}}同意条款CheckBox的isChecked属性①创建新工程②在string.xml中添加字符串<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">Ex_Ctrl_4</string><string name="advice">请勾选我同意</string><string name="accept">您已接受同意!!</string><string name="Notaccept">您未同意!!</string><string name="allOK">全部许可</string></resources>③修改main.xml布局,添加UI元素<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/TextView_Guide"android:textSize="25px"android:text="@string/advice"></TextView><TextViewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/TextView_youChoiceShow"android:textSize="25px"></TextView><CheckBoxandroid:layout_height="wrap_content"android:layout_marginTop="100px"android:layout_marginLeft="90px"android:id="@+id/CheckBox_Accept"android:layout_width="120px"></CheckBox> <Buttonandroid:layout_height="wrap_content"android:layout_marginLeft="90px"android:id="@+id/Button_OK"android:text="确定"android:layout_width="90px"></Button></LinearLayout>④修改mainActivity.java文件package zyf.Ex_Ctrl_4;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.CheckBox;import android.widget.TextView;public class Ex_Ctrl_4extends Activity{/**Called when the activity is first created.*/private TextView showAdvice,yourChoiceshow;private CheckBox iAccept;private Button ok;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.main);/*findViewById()从资源ID获取资源对象*/showAdvice=(TextView)findViewById(R.id.TextView_Guide);yourChoiceshow=(TextView)findViewById(R.id.TextView_youChoiceShow);iAccept=(CheckBox)findViewById(R.id.CheckBox_Accept);ok=(Button)findViewById(R.id.Button_OK);/*获取XML中字符串*/CharSequence titleString=getString(R.string.allOK);/*设置复选框标题*/iAccept.setHint(titleString);/*设置复选框标题字体颜色*/iAccept.setHintTextColor(Color.RED);/*将CheckBox设置成未选中*/iAccept.setChecked(false);/*将Button设置成不可选*/ok.setEnabled(false);iAccept.setOnClickListener(new CheckBox.OnClickListener(){@Overridepublic void onClick(View v){//TODO Auto-generated method stubif(iAccept.isChecked()){⑤结果ok .setEnabled(true );yourChoiceshow .setText(R.string.accept );}else {ok .setEnabled(false );yourChoiceshow .setText(R.string.Notaccept );}}});ok .setOnClickListener(new Button.OnClickListener(){@Overridepublic void onClick(View v){//TODO Auto-generated method stubif (iAccept .isChecked()){showAdvice .setText(R.string.accept );}}});}}购物列表多选项CheckBox的应用①新建工程②在string.xml中添加字符串<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">Ex_Ctrl_5</string><string name="shoopingList_TextView_text">网上购物商品清单</string><string name="yourChocieWoods_text">您选择购买的商品:</string><string name="woods_Text_MP4">纽曼MP4</string><string name="woods_Text_musicCD">Beyond乐队CD</string><string name="woods_Text_book">Android程序员指南</string></resources>③修改main.xml布局,添加UI元素<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/TextView_shoppingList"android:text="@string/shoopingList_TextView_text"android:textSize="25px"></TextView><CheckBoxandroid:layout_height="wrap_content"android:id="@+id/CheckBox_MP4"android:text="@string/woods_Text_MP4"android:layout_width="180px"></CheckBox><CheckBoxandroid:layout_height="wrap_content"android:text="@string/woods_Text_musicCD"android:id="@+id/CheckBox_musicCD"android:layout_width="180px"></CheckBox><CheckBoxandroid:layout_height="wrap_content"android:text="@string/woods_Text_book"android:id="@+id/CheckBox_book"android:layout_width="180px"></CheckBox><TextViewandroid:layout_height="wrap_content"android:layout_width="fill_parent"android:id="@+id/TextView_yourChoice"android:text="@string/yourChocieWoods_text"android:textSize="20px"></TextView><TextViewandroid:layout_height="wrap_content"android:id="@+id/TextView_yourWoodsList"android:layout_width="fill_parent"android:textSize="20px"></TextView></LinearLayout>④修改mainActivity.java,添加逻辑判断package zyf.Ex_Ctrl_5;import android.app.Activity;import android.os.Bundle;import android.widget.CheckBox;import poundButton;import android.widget.TextView;import poundButton.OnCheckedChangeListener;public class Ex_Ctrl_5extends Activity{/**Called when the activity is first created.*/private TextView showyourChoice_TextView;private CheckBox mp4_CheckBox,musicCD_CheckBox,book_CheckBox;private String showinfo;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.main);/*findViewById()从XML中获取资源对象*/showyourChoice_TextView=(TextView) findViewById(R.id.TextView_yourWoodsList);mp4_CheckBox=(CheckBox)findViewById(R.id.CheckBox_MP4);musicCD_CheckBox=(CheckBox)findViewById(R.id.CheckBox_musicCD);book_CheckBox=(CheckBox)findViewById(R.id.CheckBox_book);/*为三个CheckBox设置选择状态改变事件监听器*/mp4_CheckBox.setOnCheckedChangeListener(CheckedChangeListener);musicCD_CheckBox.setOnCheckedChangeListener(CheckedChangeListener);book_CheckBox.setOnCheckedChangeListener(CheckedChangeListener);/*从XML中获取显示信息String*/showinfo=getString(R.string.yourChocieWoods_text);}/*内部接口实现*/private OnCheckedChangeListener CheckedChangeListener=new OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(CompoundButton buttonView,boolean isChecked){//TODO Auto-generated method stub/*处理选中状态改变事件,动态显示选择结果*/if(mp4_CheckBox.isChecked()){showinfo=getString(R.string.woods_Text_MP4)+"\n";showString();}else if(musicCD_CheckBox.isChecked()){showinfo=getString(R.string.woods_Text_musicCD)+"\n";showString();}else if(book_CheckBox.isChecked()){showinfo=getString(R.string.woods_Text_book)+"\n";showString();}if(mp4_CheckBox.isChecked()&&musicCD_CheckBox.isChecked()){ showinfo=getString(R.string.woods_Text_MP4)+"\n"+getString(R.string.woods_Text_musicCD)+"\n";showString();}else if(mp4_CheckBox.isChecked()&&book_CheckBox.isChecked()){ showinfo=getString(R.string.woods_Text_MP4)+"\n"+getString(R.string.woods_Text_book)+"\n";showString();}else if(musicCD_CheckBox.isChecked()&&book_CheckBox.isChecked()){showinfo=getString(R.string.woods_Text_musicCD)+"\n"+getString(R.string.woods_Text_book)+"\n";showString();}if(mp4_CheckBox.isChecked()&&musicCD_CheckBox.isChecked()&&book_CheckBox.isChecked()){showinfo=getString(R.string.woods_Text_MP4)+"\n"⑤结果+getString(R.string.woods_Text_musicCD )+"\n"+getString(R.string.woods_Text_book )+"\n";showString();}if (mp4_CheckBox .isChecked()==false&&musicCD_CheckBox .isChecked()==false&&book_CheckBox .isChecked()==false ){showyourChoice_TextView .setText("");}}public void showString(){showyourChoice_TextView .setText(showinfo );}};}RadioButton单选RadioGroup组与onCheckedChanged事件①新建工程②string.xml中添加字符串<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">Ex_Ctrl_6</string><string name="iam_Boy">帅哥</string><string name="iamGirl">美女</string><string name="ask">请问你是??</string></resources>③修改mian.xml布局,添加UI元素<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/ask"android:id="@+id/TextView_Ask_And_Show"android:textSize="25px"/><RadioGroupandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/RadioGroup"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/RadioButton_Boy"android:text="@string/iam_Boy"></RadioButton><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/iamGirl"android:id="@+id/RadioButton_Gril"></RadioButton></RadioGroup></LinearLayout>④修改mainActivity.java文件package zyf.Ex_Ctrl_6;import android.app.Activity;import android.os.Bundle;import android.widget.RadioButton;import android.widget.RadioGroup;import android.widget.TextView;public class Ex_Ctrl_6extends Activity{/**Called when the activity is first created.*/private TextView answer_TextView;private RadioButton boy_RadioButton,girl_RadioButton;private RadioGroup radioGroup;@Overridepublic void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(yout.main);/*findViewById()从XML中获取资源对象*/answer_TextView=(TextView)findViewById(R.id.TextView_Ask_And_Show);radioGroup=(RadioGroup)findViewById(R.id.RadioGroup);boy_RadioButton=(RadioButton)findViewById(R.id.RadioButton_Boy);girl_RadioButton=(RadioButton)findViewById(R.id.RadioButton_Gril);/*给单RadioGroup添加状态改变监听器*/radioGroup.setOnCheckedChangeListener(newRadioGroup.OnCheckedChangeListener(){@Overridepublic void onCheckedChanged(RadioGroup group,int checkedId){ //TODO Auto-generated method stubif(boy_RadioButton.isChecked()){answer_TextView.setText(R.string.iam_Boy);}else{answer_TextView.setText(R.string.iamGirl);}}});}}⑤结果RadioButton猜猜看猜猜我是??①新建项目②准备三张png图片③在string.xml中添加要使用的字符串④在main.xml中添加UI元素ic_menu_close_clear_cancel.png right.png wrong.png<?xml version="1.0"encoding="utf-8"?><resources><string name="app_name">Ex_Ctrl_6</string><string name="iam_Boy">帅哥</string><string name="iamGirl">美女</string><string name="ask">猜猜我是??</string><string name="answer_Q">回答</string><string name="clean">清空</string><string name="showAnswerTitle_YES">恭喜!</string><string name="showAnswerTitle_NO">很遗憾!</string><string name="about_dialog_ok">OK</string><string name="right">您答对了!!</string><string name="wrong">哈哈,错误!</string><string name="answerIS">正确答案是:</string></resources><?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/ask"android:id="@+id/TextView_Ask_And_Show"android:textSize="25px"/><RadioGroupandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/RadioGroup"><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/RadioButton_Boy"android:text="@string/iam_Boy"></RadioButton><RadioButtonandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/iamGirl"android:id="@+id/RadioButton_Gril"> </RadioButton></RadioGroup><LinearLayoutandroid:orientation="horizontal"android:layout_width="fill_parent"android:layout_height="wrap_content"><Buttonandroid:id="@+id/answer_The_Q_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/answer_Q"></Button><Buttonandroid:id="@+id/clean_The_Q_button"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/clean"></Button></LinearLayout></LinearLayout>⑤修改mainActivity.java文件package zyf.Ex_Ctrl_6;import java.util.Random;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;import android.view.Menu;。

android基础UI控件学习总结

android基础UI控件学习总结

android基础UI控件学习总结⼀、基本控件介绍1、Android中所有控件的顶层基类view的常⽤属性:android:id设置控件的标识符号android:layout_width设置⼦组件的布局宽度android:layout_height设置⼦组件的布局⾼度android:background设置控件的背景⾊android:onClick设置控件的单击事件绑定监听器android:visibility设置控件是否可见android:alpha设置控件透明度(0-1之间的数值)android:padding设置⼦组件的内边距android:layout_margin设置⼦组件的外边距2、⽂本控件TextView常⽤属性:android:text:⽂本的内容android:textSize:⽂字的⼤⼩android:textColor:⽂本的颜⾊3、按钮控件Button常⽤属性:android:onClick设置控件的单击事件绑定监听器4、⽂本编辑控件EditText常⽤属性:android:hint输⼊提⽰android:textColorHint提⽰的颜⾊android:textColorHighlight选中字体的背景颜⾊android:inputType设置输⼊类型5、组合案例:登⼊界⾯1)xml布局⽂件<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical" android:layout_width="match_parent"android:layout_height="match_parent"><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="50dp"android:background="#44f"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerHorizontal="true"android:layout_centerVertical="true"android:text="**账号登录"android:textColor="#ffffff"/></RelativeLayout><EditTextandroid:id="@+id/userName"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="18"android:inputType="textPersonName"android:hint="请输⼊⽤户名"android:layout_marginTop="30dp"android:layout_marginLeft="16dp"android:layout_marginRight="16dp"/><EditTextandroid:id="@+id/password"android:layout_width="match_parent"android:layout_height="wrap_content"android:ems="18"android:inputType="textPassword"android:hint="请输⼊密码"android:layout_marginTop="30dp"android:layout_marginLeft="16dp"android:layout_marginRight="16dp"/><Buttonandroid:id="@+id/login"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="登⼊"android:layout_marginTop="30dp"android:layout_marginLeft="16dp"android:layout_marginRight="16dp"/><TextViewandroid:id="@+id/con"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginTop="2dp"android:textSize="30sp"android:layout_marginLeft="20dp"/><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="v-1.0-a"android:layout_marginTop="400dp"android:layout_marginLeft="180dp"/></LinearLayout>View Code2)逻辑代码package com.me.androidstudy;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView;import androidx.annotation.Nullable;public class Activity_ui_1 extends Activity {EditText userName,password;Button login;TextView con;//绑定控件public void initView(){userName = findViewById(erName);password = findViewById(R.id.password);login = findViewById(R.id.login);con = findViewById(R.id.con);}@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.activity_ui_1);initView();login.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {String userName_str = userName.getText().toString();String password_str = password.getText().toString();String str = "⽤户名:"+ userName_str+"\n"+"密码:"+password_str+"\n";con.setText(str);}});}}View Code3)测试6、复选框控件CheckBoxAndroid中checkbox默认为复选框,也就是多选,实现单选的话,可以让checkbox添加监听,当已经有⼀个点击了,点击另外⼀个的时候,修改默认的状态,实现单选。

Android开发讲义(第二章 Android初级界面编程)

Android开发讲义(第二章 Android初级界面编程)
Android开发讲义
主讲人:
课程体系


Android开发环境的搭建 Android初级界面编程 事件处理 深入Activity Intent与IntentFilter Android高级界面编程 Android应用的资源
Android开发讲义
主讲人:杨锎
课程体系


如果元素独占一行,则可以省略 <TableRow>标签
Android开发讲义
表格布局 示例二 <TableLayout android:id="@+id/tableLayout02" android:layout_width="fill_parent" android:layout_height="wrap_content" android:stretchColumns="2" android:shrinkColumns="1"> <TableRow> <Button android:id="@+id/btn2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="按钮二"/> <Button android:id="@+id/btn3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="允许被收缩的按钮"/> <Button android:id="@+id/btn4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="允许被拉伸的按钮"/>
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

封面Android 基础UI编程1更改与显示文字标签TextView 标签的使用①导入TextV iew包import android.widget.TextView;②在mainActivity.java中声明一个TextViewprivate TextView mTextView01;③在main.xml中定义一个TextView<TextView android:text="TextView01"android:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_x="61px"android:layout_y="69px"></TextView>④利用findView ById()方法获取main.xml中的TextViewmTextView01 = (TextView) findViewById(R.id.TextView01);⑤设置TextV iew标签内容String str_2 = "欢迎来到Android 的TextView 世界...";mTextView01.setText(str_2);⑥设置文本超级链接<TextViewandroid:id="@+id/TextView02"android:layout_width="wrap_content"android:layout_height="wrap_content"android:autoLink="all"android:text="请访问Android 开发者:/index.html"> </TextView>android.graphics.Color实践----Color颜色变幻android.graphics.Color包含颜色值Color.BLACK Color.BLUEColor.CY ANColor.DKGRAY Color.GRAYColor.GREEN Color.LTGRAY Color.MAGENTA Color.REDColor.TRANSPARENT Color.WHITE Color.YELLOW 黑色蓝色青绿色灰黑色灰色绿色浅灰色红紫色红色透明白色黄色编程实现颜色变幻①新建工程②修改mainActivity.java文件,添加12个TextV iew对象变量,一个LinearLayout对象变量、一个WC 整数变量、一个youtParams变量。

package zyf.ManyColorME;/*导入要使用的包*/import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.widget.LinearLayout;import android.widget.TextView;public class ManyColorME extends Activity {/**Called when the activity is first created.*//* 定义使用的对象 */private LinearLayout myLayout;private youtParams layoutP;private int WC = youtParams.WRAP_CONTENT;private TextView black_TV, blue_TV, cyan_TV, dkgray_TV,gray_TV, green_TV,ltgray_TV, magenta_TV, red_TV,transparent_TV, white_TV, yellow_TV;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);/* 实例化一个LinearLayout布局对象 */myLayout = new LinearLayout(this);/* 设置LinearLayout的布局为垂直布局 */myLayout.setOrientation(LinearLayout.VERTICAL);/* 设置LinearLayout布局背景图片 */myLayout.setBackgroundResource(R.drawable.back);/* 加载主屏布局 */setContentView(myLayout);/* 实例化一个LinearLayout布局参数,用来添加View */layoutP = new youtParams(WC, WC);/* 构造实例化TextView对象 */constructTextView();/* 把TextView添加到LinearLayout布局中 */addTextView();/* 设置TextView文本颜色 */setTextViewColor();/* 设置TextView文本内容 */setTextViewText();}/* 设置TextView文本内容 */public void setTextViewText() {black_TV.setText("黑色");blue_TV.setText("蓝色");cyan_TV.setText("青绿色");dkgray_TV.setText("灰黑色");gray_TV.setText("灰色");green_TV.setText("绿色");ltgray_TV.setText("浅灰色");magenta_TV.setText("红紫色");red_TV.setText("红色");transparent_TV.setText("透明");white_TV.setText("白色");yellow_TV.setText("黄色");}/* 设置TextView文本颜色 */public void setTextViewColor() {black_TV.setTextColor(Color.BLACK);blue_TV.setTextColor(Color.BLUE);dkgray_TV.setTextColor(Color.DKGRAY);gray_TV.setTextColor(Color.GRAY);green_TV.setTextColor(Color.GREEN);ltgray_TV.setTextColor(Color.LTGRAY);magenta_TV.setTextColor(Color.MAGENTA);red_TV.setTextColor(Color.RED);transparent_TV.setTextColor(Color.TRANSPARENT);white_TV.setTextColor(Color.WHITE);yellow_TV.setTextColor(Color.YELLOW);}/* 构造实例化TextView对象 */public void constructTextView() {black_TV = new TextView(this);blue_TV = new TextView(this);cyan_TV = new TextView(this);dkgray_TV = new TextView(this);gray_TV = new TextView(this);green_TV = new TextView(this);ltgray_TV = new TextView(this);magenta_TV = new TextView(this);red_TV = new TextView(this);transparent_TV = new TextView(this);white_TV = new TextView(this);yellow_TV = new TextView(this);}/* 把TextView添加到LinearLayout布局中 */public void addTextView() {myLayout.addView(black_TV, layoutP);myLayout.addView(blue_TV, layoutP);myLayout.addView(cyan_TV, layoutP);myLayout.addView(dkgray_TV, layoutP);myLayout.addView(gray_TV, layoutP);myLayout.addView(green_TV, layoutP);myLayout.addView(ltgray_TV, layoutP);myLayout.addView(magenta_TV, layoutP);myLayout.addView(red_TV, layoutP);myLayout.addView(transparent_TV, layoutP);myLayout.addView(white_TV, layoutP);myLayout.addView(yellow_TV, layoutP);}}③结果android.graphics.Typeface实践字体风格Typeface种类int Style类型BOLDBOLD_ITALIC ITALIC NORMAL 粗体粗斜体斜体普通字体Typeface类型DEFAULT DEFAULT_BOLD MONOSPACE SANS_SERIF SERIF 默认字体默认粗体单间隔字体无衬线字体衬线字体Typeface.create(Typeface family,int style) 创建一个混合型新的字体:有4*5中搭配Typeface.setTypeface (Typeface tf, int style) 设置一个混合型字体:有4*5中搭配Typeface.setTypeface(Typeface tf)设置一个只有Typeface风格的字体:有五种形式编程实现以上静态域字体①创建新工程②修改mianActivity.java,实现多种字体TextView显示package zyf.TypefaceStudy;/*导入要使用的包*/import android.app.Activity;import android.graphics.Color;import android.graphics.Typeface;import android.os.Bundle;import android.view.ViewGroup;import android.widget.LinearLayout;import android.widget.TextView;public class TypefaceStudy extends Activity {/**Called when the activity is first created.*//** android.graphics.Typeface ng.ObjectTypeface类指定一个字体的字体和固有风格.* 该类用于绘制,与可选绘制设置一起使用,如textSize, textSkewX, textScaleX 当绘制(测量)时来指定如何显示文本.*//* 定义实例化一个布局大小,用来添加TextView */final int WRAP_CONTENT = youtParams.WRAP_CONTENT;/* 定义TextView对象 */private TextView bold_TV, bold_italic_TV, default_TV,default_bold_TV,italic_TV,monospace_TV,normal_TV,sans_serif_TV,serif_TV;/* 定义LinearLayout布局对象 */private LinearLayout linearLayout;/* 定义LinearLayout布局参数对象 */private youtParams linearLayouttParams;@Overridepublic void onCreate(Bundle icicle) {super.onCreate(icicle);/* 定义实例化一个LinearLayout对象 */linearLayout = new LinearLayout(this);/* 设置LinearLayout布局为垂直布局 */linearLayout.setOrientation(LinearLayout.VERTICAL);/*设置布局背景图*/linearLayout.setBackgroundResource(R.drawable.back);/* 加载LinearLayout为主屏布局,显示 */setContentView(linearLayout);/* 定义实例化一个LinearLayout布局参数 */linearLayouttParams =new youtParams(WRAP_CONTENT,WRAP_CONTENT);constructTextView();setTextSizeOf();setTextViewText() ;setStyleOfFont();setFontColor();toAddTextViewToLayout();}public void constructTextView() {/* 实例化TextView对象 */bold_TV = new TextView(this);bold_italic_TV = new TextView(this);default_TV = new TextView(this);default_bold_TV = new TextView(this);italic_TV = new TextView(this);monospace_TV=new TextView(this);normal_TV=new TextView(this);sans_serif_TV=new TextView(this);serif_TV=new TextView(this);}public void setTextSizeOf() {// 设置绘制的文本大小,该值必须大于0bold_TV.setTextSize(24.0f);bold_italic_TV.setTextSize(24.0f);default_TV.setTextSize(24.0f);default_bold_TV.setTextSize(24.0f);italic_TV.setTextSize(24.0f);monospace_TV.setTextSize(24.0f);normal_TV.setTextSize(24.0f);sans_serif_TV.setTextSize(24.0f);serif_TV.setTextSize(24.0f);}public void setTextViewText() {/* 设置文本 */bold_TV.setText("BOLD");bold_italic_TV.setText("BOLD_ITALIC");default_TV.setText("DEFAULT");default_bold_TV.setText("DEFAULT_BOLD");italic_TV.setText("ITALIC");monospace_TV.setText("MONOSPACE");normal_TV.setText("NORMAL");sans_serif_TV.setText("SANS_SERIF");serif_TV.setText("SERIF");}public void setStyleOfFont() {/* 设置字体风格 */bold_TV.setTypeface(null, Typeface.BOLD);bold_italic_TV.setTypeface(null, Typeface.BOLD_ITALIC);default_TV.setTypeface(Typeface.DEFAULT);default_bold_TV.setTypeface(Typeface.DEFAULT_BOLD);italic_TV.setTypeface(null, Typeface.ITALIC);monospace_TV.setTypeface(Typeface.MONOSPACE);normal_TV.setTypeface(null, Typeface.NORMAL);sans_serif_TV.setTypeface(Typeface.SANS_SERIF);serif_TV.setTypeface(Typeface.SERIF);}public void setFontColor() {/* 设置文本颜色 */bold_TV.setTextColor(Color.BLACK);bold_italic_TV.setTextColor(Color.CYAN);default_TV.setTextColor(Color.GREEN);default_bold_TV.setTextColor(Color.MAGENTA);italic_TV.setTextColor(Color.RED);monospace_TV.setTextColor(Color.WHITE);normal_TV.setTextColor(Color.YELLOW);sans_serif_TV.setTextColor(Color.GRAY);serif_TV.setTextColor(Color.LTGRAY);}public void toAddTextViewToLayout() {/* 把TextView加入LinearLayout布局中 */linearLayout.addView(bold_TV, linearLayouttParams);linearLayout.addView(bold_italic_TV, linearLayouttParams);linearLayout.addView(default_TV, linearLayouttParams);linearLayout.addView(default_bold_TV, linearLayouttParams);linearLayout.addView(italic_TV, linearLayouttParams);linearLayout.addView(monospace_TV, linearLayouttParams);linearLayout.addView(normal_TV, linearLayouttParams);linearLayout.addView(sans_serif_TV, linearLayouttParams);linearLayout.addView(serif_TV, linearLayouttParams);}}③结果更改手机窗口画面底色drawable 定义颜色常数的方法①编写main布局<?xml version="1.0"encoding="utf-8"?><AbsoluteLayoutandroid:id="@+id/widget0"android:layout_width="fill_parent"android:layout_height="fill_parent"xmlns:android="/apk/res/android" ><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="账号"android:layout_x="61px"android:layout_y="69px"></TextView><TextViewandroid:id="@+id/password"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码"android:layout_x="61px"android:layout_y="158px"></TextView><EditTextandroid:id="@+id/name_in"android:layout_width="120dip"android:layout_height="wrap_content"android:textSize="18sp"android:layout_x="114px"android:layout_y="57px"></EditText><EditTextandroid:id="@+id/pwd_in"android:layout_width="120dip"android:layout_height="wrap_content"android:textSize="18sp"android:password="true"android:layout_x="112px"android:layout_y="142px"></EditText></AbsoluteLayout>②在values文件夹中定义一个drawable.xml文件用来存放颜色值<?xml version="1.0"encoding="utf-8"?><resources><color name="white">#FFFFFF</color><color name="darkgray">#938192</color><color name="lightgreen">#7cd12e</color></resources>③修改main.xml中的屏幕背景颜色和TextView的字体颜色<AbsoluteLayoutandroid:id="@+id/widget0"android:layout_width="fill_parent"android:layout_height="fill_parent"android:background="@color/white"xmlns:android="/apk/res/android" ><TextViewandroid:id="@+id/name"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="账号"android:textColor="@color/darkgray"android:layout_x="61px"android:layout_y="69px"></TextView><TextViewandroid:id="@+id/password"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="密码"android:textColor="@color/darkgray"android:layout_x="61px"android:layout_y="158px">④在mainActivity.java代码中修改TextView背景颜色public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.main);TextView text=(TextView)findViewById();//由ID获得资源Resources myColor=getBaseContext().getResources();//getBaseContext()获得基础Context//getResources()获得资源Drawable color_M=myColor.getDrawable(R.color.lightgreen);//由资源 myColor来获得Drawable R.color.lightgreen是颜色值的ID引用text.setBackgroundDrawable(color_M);//设置背景}⑤结果:代码中更改T extView 文字颜色①创建工程②编写布局main.xml<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/><TextViewandroid:text="TextView01"android:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView><TextViewandroid:text="这里使用Graphics颜色静态常量"android:id="@+id/TextView02"android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView></LinearLayout>③新加drawable.xml,其中添加一个white颜色值<?xml version="1.0"encoding="utf-8"?><resources><color name="white">#ffffffff</color></resources>④在代码中由ID获取TextV iewTextView text_A=(TextView)findViewById(R.id.TextView01);TextView text_B=(TextView)findViewById(R.id.TextView02);⑤获取Resources 对象Resources myColor_R=getBaseContext().getResources();//getBaseContext()获得基础Context//getResources()从Context获取资源实例对象⑥获取Drawable对象Drawable myColor_D=myColor_R.getDrawable(R.color.white);⑦设置文本背景颜色text_A.setBackgroundDrawable(myColor_D);⑧利用android.graphics.Color 的颜色静态变量来改变文本颜色text_A.setTextColor(android.graphics.Color.GREEN);⑨利用Color的静态常量来设置文本颜色text_B.setTextColor(Color.RED);置换T extView 文字CharSequence 数据类型与Resource ID 应用①创建新工程②修改main.xml布局,新增一个TextView<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:text="@string/str_2"android:layout_width="fill_parent"android:layout_height="wrap_content"android:id="@+id/myTextView2"/></LinearLayout>③在string.xml中添加字符串str_2:<?xml version="1.0"encoding="utf-8"?><resources><string name="hello">Hello World, Ex4_UI!</string><string name="app_name">Ex4_UI</string><string name="str_2">我是Resource里的&quot;字符串&quot;</string></resources>④在mainActivity.java中findView ByID()获取TextV iewTextView myText=(TextView)findViewById(R.id.myTextView2);⑤getString(R.string.str_2)得到原字符串CharSequence string2=getString(R.string.str_2);⑥定义新字符串str_3String str_3="我是程序里调用Resource 的";⑦两个字符串连接并重新设置TextV iew内容myText.setText(str_3+string2);取得手机屏幕大小DisplayMetrics类取得画面宽高①创建新工程②修改main.xml布局,添加一个TextView<?xml version="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:text="TextView01"android:id="@+id/TextView01"android:layout_width="wrap_content"android:layout_height="wrap_content"></TextView></LinearLayout>③在代码中定义一个DisplayMetrics类对象DisplayMetrics displaysMetrics=new DisplayMetrics();//DisplayMetrics 一个描述普通显示信息的结构,例如显示大小、密度、字体尺寸④获取手机窗口的Display来初始化DisplayMetrics对象getWindowManager().getDefaultDisplay().getMetrics(displaysMetrics);//getManager()获取显示定制窗口的管理器。

相关文档
最新文档