android View控件布局

View布局

简单来说,窗口就是由一系列的视图按照一定的布局组织起来的。

实际上,每一个视图都是一个控件,这些控件可以将自己的UI绘制在窗口的绘图表面上,同时还可以与用户进行交互,即获得用户的键盘或者触摸屏输入。第一个材料是画布,第二个材料是用户输入。有画布才能绘制UI,而有用户输入才能与用户进行交互。

一个PhoneWindow对象,一个DecorView(视图容器)对象,以及一个ViewRoot对象来描述的。

TextView:

java.lang.Object 
   ↳ android.view.View 
   ↳ android.widget.TextView

TextView的常用属性有以下一些:
  setText();                          //设置文本内容,同xml中的android:text
  setTextSize();                    //设置文本字体大小,同xml中的android:textSize
  setTextColor();                   //设置文本颜色,同xml中的android:textColor
  setBackgroundColor();         //设置背景颜色,同xml中的android:background
  此外,还可以在xml中设置一些TextView的属性,如下:
  android:autoLink                 //设置是否显示为可点击的链接。可选值(none/web/email/phone/map/all)************************************

a.   web   网站形式,如:www.baidu.com
b.   phone  电话形式 如:13480714652
c.   emali    邮箱形式 如: sandy.huang.android@gmail.com
d.   map   地图形式,如:1912 Avenue K Plano,Texas 75074 

  android:drawableBottom      //在text的下方输出一个drawable(图片)
  android:drawableLeft           //在text的左边输出一个drawable(图片),左边显示一张图片<登陆>
  android:drawableRight         //在text的右边输出一个drawable(图片)
  android:drawableTop           //在text的正上方输出一个drawable(图片)
  android:drawablePadding     //设置text与drawable(图片)的间隔,与drawableLeft、drawableRight、drawableTop、drawableBottom一起使用,可设置为负数,单独使用没有效果
  android:ellipsize                 //设置当文字过长时,该控件该如何显示。可设置如下属性值:"start"省略号显示在开头;"end”省略号显示在结尾;"middle"省略号显示在中间; "marquee" 以跑马灯的方式显示(动画横向移动)
  android:gravity                   //设置文本位置,设置成"center",文本将居中显示
  android:linksClickable          //设置点击时是否链接,即使设置了autoLink
  android:marqueeRepeatLimit     //在ellipsize设定为marquee时,设置重复滚动的次数,设置为marquee_forever时表示无限次。
  android:lines                      //设置文本的行数,设置两行就显示两行,即使第二行没有数据
  android:shadowRadius         //设置阴影的半径。设置为0.1就变成字体的颜色了,一般设置为3.0的效果比较好
  android:shadowColor           //指定文本阴影的颜色,需要与shadowRadius一起使用
  android:singleLine               //设置单行显示
  android:textColorLink           //设置文字链接的颜色
  android:textScaleX              //设置文字之间间隔,默认为1.0f
  android:textStyle                //设置字形 bold(粗体) 0, italic(斜体) 1, bolditalic(又粗又斜) 2, 可以设置一个或多个,用“|”隔开
  android:typeface                 //设置文本字体,必须是以下常量值之一:normal 0, sans 1, serif 2, monospace(等宽字体) 3


webview:

java.lang.Object的
   ↳    android.view.View
       ↳    android.view.ViewGroup
           ↳    android.widget.AbsoluteLayout
               ↳    android.webkit.WebView

    网络内容(可以做浏览器)
1、LoadUrl直接显示网页内容(单独显示网络图片)
2、LoadData显示中文网页内容(含空格的处理)
APK包内文件
1、LoadUrl显示APK中Html和图片文件
2、LoadData(loadDataWithBaseURL)显示APK中图片和文字混合的Html内容
res/layout/main.xml

WebView.getSettings来得到这个设置

WebSettings常用方法: 
setAllowFileAccess 启用或禁止WebView访问文件数据 
setBlockNetworkImage 是否显示网络图像
setBuiltInZoomControls 设置是否支持缩放
setCacheMode 设置缓冲的模式 
setDefaultFontSize 设置默认的字体大小 

setDefaultTextEncodingName 设置在解码时使用的默认编码
setFixedFontFamily 设置固定使用的字体
setJavaSciptEnabled 设置是否支持Javascript
setLayoutAlgorithm 设置布局方式 
setLightTouchEnabled 设置用鼠标激活被选项
setSupportZoom 设置是否支持变焦  
WebViewClient常用方法: 
doUpdate VisitedHistory 更新历史记录 
onFormResubmission 应用程序重新请求网页数据
onLoadResource 加载指定地址提供的资源
onPageFinished 网页加载完毕
onPageStarted 网页开始加载
onReceivedError 报告错误信息
onScaleChanged WebView发生改变 
shouldOverrideUrlLoading 控制新的连接在当前WebView中打开  
WebChromeClient常用方法:
onCloseWindow 关闭WebView
onCreateWindow 创建WebView 
onJsAlert 处理Javascript中的Alert对话框 
onJsConfirm处理Javascript中的Confirm对话框
onJsPrompt处理Javascript中的Prompt对话框
onProgressChanged 加载进度条改变
onReceivedlcon 网页图标更改
onReceivedTitle 网页Title更改
onRequestFocus WebView显示焦点


GridView:

宫格显示

tablelayout是表格布局,表是一行行的,在tablerow里边写多少东西,这一行就有多少东西,但是每行不一定非要相同;但是gridview是网格,每行有几个是自己定义了,一旦定义好了以后,每行的内容及数量一定相等;而且gridview可以看到线条,但是tablelayout不会,没有线条。


DecorView:


SurfaceView:

SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画布canvas中画出。

 surface是纵深排序(Z-ordered)的,这表明它总在自己所在窗口的后面。surfaceview提供了一个可见区域,只有在这个可见区域内 的surface部分内容才可见,可见区域外的部分不可见。surface的排版显示受到视图层级关系的影响,它的兄弟视图结点会在顶端显示。这意味者 surface的内容会被它的兄弟视图遮挡,这一特性可以用来放置遮盖物(overlays)(例如,文本和按钮等控件)。注意,如果surface上面 有透明控件,那么它的每次变化都会引起框架重新计算它和顶层控件的透明效果,这会影响性能。
        你可以通过SurfaceHolder接口访问这个surface,getHolder()方法可以得到这个接口。

SurfaceView是View类的子类,可以直接从内存或者DMA等硬件接口取得图像数据,是个非常重要的绘图视图。
它的特性是:可以在主线程之外的线程中向屏幕绘图上。这样可以避免画图任务繁重的时候造成主线程阻塞,
从而提高了程序的反应速度。在游戏开发中多用到SurfaceView,游戏中的背景、人物、动画等等尽量在画
布canvas中画出。


TextureView:(Android4.0)

TextureView可以用来显示内容流。这样一个内容流例如可以视频或者OpenGL的场景。内容流可以来自本应用程序以及其他进程。

Textureview必须在硬件加速开启的窗口中。

与SurfaceView相比,TextureView不会创建一个单独的窗口,这使得它可以像一般的View一样执行一些变换操作,比如移动、动画等等,例如,你可以通过调用myView.setAlpha(0.5f)将TextureView设置成半透明。

使用TextureView很简单:你需要使用的就是SurfaceTexture,SurfaceTexture可以用于呈现内容。


CalendarView:


VideoView:

自带了一个VideoView,用来播放视频和网络视频,它是继承SurfaceView使用MediaPlayer来做播放的类。

Android框架提供了VideoView类来封装MediaPalyer,这个VideoView类非常好用。Android自带的程序Gallery也是用VideoView实现的。


ImageView:

ImageView.ScaleType / android:scaleType 值的意义区别: 
CENTER /center  按图片的原来size居中显示,当图片长/宽超过View的长/宽,则截取图片的居中部分显示 
CENTER_CROP / centerCrop  按比例扩大图片的size居中显示,使得图片长 (宽)等于或大于View的长(宽) 
CENTER_INSIDE / centerInside  将图片的内容完整居中显示,通过按比例缩小或原来的size使得图片长/宽等于或小于View的长/宽 
FIT_CENTER / fitCenter  把图片按比例扩大/缩小到View的宽度,居中显示 
FIT_END / fitEnd   把图片按比例扩大/缩小到View的宽度,显示在View的下部分位置 
FIT_START / fitStart  把图片按比例扩大/缩小到View的宽度,显示在View的上部分位置 
FIT_XY / fitXY  把图片 不按比例 扩大/缩小到View的大小显示 
MATRIX / matrix 用矩阵来绘制 


*ListView*:最重要和最常用的View控件

之后再聊


ScrollView:


SearchView:

 mSearchView = (SearchView) findViewById(R.id.search);  
        mSearchView.setIconifiedByDefault(true);  
        mSearchView.onActionViewExpanded();  
        mSearchView.setFocusable(false);  
        mSearchView.clearFocus(); 

事件处理:mSearchView.setOnQueryTextListener(new OnQueryTextListener(){});

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值