Android_VIEW

继承关系:

java.lang.Object

android.view.View

直接子类:

AnalogClock, ImageView, KeyboardView, ProgressBar, SurfaceView, TextView, ViewGroup, ViewStub

间接子类:

AbsListView, AbsSeekBar, AbsSpinner, AbsoluteLayout, AdapterView<T extends Adapter>, AppWidgetHostView, AutoCompleteTextView, Button,CheckBox,CheckedTextView, Chronometer, CompoundButton, DatePicker, DialerFilter, DigitalClock, EditText, ExpandableListView, ExtractEditText,
FrameLayout, GLSurfaceView, Gallery, GestureOverlayView, GridView, HorizontalScrollView, ImageButton, ImageSwitcher, LinearLayout, ListView, MediaController, MultiAutoCompleteTextView, QuickContactBadge, RadioButton, RadioGroup, RatingBar, RelativeLayout,
ScrollView, SeekBar, SlidingDrawer, Spinner, TabHost, TabWidget, TableLayout, TableRow, TextSwitcher, TimePicker, ToggleButton, TwoLineListItem, VideoView, ViewAnimator, ViewFlipper, ViewSwitcher, WebView, ZoomButton, ZoomControls

XML 属性

android:background

设置背景色/背景图片。

可以通过以下两种方法设置背景为透明:"@android:color/transparent"和"@null"。

注意TextView 默认是透明的,不用写此属性,但是Buttom/ImageButton/ImageView 想透明的话就得写这个属性了。

android:clickable

是否响应点击事件。

android:contentDescription

设置 View 的备注说明,作为一种辅助功能提供,为一些没有文字描述的 View 提供说明,如 ImageButton。

这里在界面上不会有效果,自己在程序中控制,可临时放一点字符串数据。

android:drawingCacheQuality

设置绘图时半透明质量。

有以下值可设置:

  • auto(默认,由框架决定)
  • high(高质量,使用较高的颜色深度,消耗更多的内存)
  • low(低质量,使用较低的颜色深度,但是用更少的内存)。

android:duplicateParentState

直接从父容器中获取绘图状态(光标,按下等)。

<LinearLayout android:clickable="true"
<span style="white-space:pre">	</span>android:background="#ff0fff" android:layout_width="100dp"
<span style="white-space:pre">	</span>android:layout_height="100dp">
<span style="white-space:pre">	</span><Button android:duplicateParentState="true"
<span style="white-space:pre">		</span>android:layout_width="wrap_content"
<span style="white-space:pre">		</span>android:layout_height="wrap_content"/>
</LinearLayout>

注意根据目前测试情况仅仅是获取绘图状态,而没有获取事件,也就是你点一下LinearLayout 时 Button 有被点击的效果,但是不执行点击事件。

android:fadingEdge

设置拉滚动条时 ,边框渐变的放向。

  • none(边框颜色不变)
  • horizontal(水平方向颜色变淡)
  • vertical(垂直方向颜色变淡)

android:fadingEdgeLength

设置 边框渐变的长度。

android:fitsSystemWindows

设置布局调整时是否考虑系统窗口(如状态栏)

android:focusable

设置是否获得焦点。若有 requestFocus()被调用时,后者优先处理。

注意在表单中想设置某一个如 EditText 获取焦点,光设置这个是不行的,需要将这个 EditText 前面的focusable 都设置为 false 才行。

在 Touch 模式下获取焦点需要设置 focusableInTouchMode 为 true。

android:focusableInTouchMode

设置在 Touch 模式下 View 是否能取得焦点。

android:hapticFeedbackEnabled

设置触感反馈。

按软键以及进行某些 UI交互时振动,暂时不知道用法,大家可以找找performHapticFeedback或HapticFeedback这个关键字的资料看看。

android:id

给当前 View 设置一个在当前 layout.xml 中的唯一编号,可以通过调用 View.findViewById()  或 Activity.findViewById()根据这个编号查找到对应的 View。

不同的 layout.xml 之间定义相同的 id 不会冲突。

格式如”@+id/btnName”

android:isScrollContainer

设置当前 View 为滚动容器。

这里没有测试出效果来,ListView/ GridView/ ScrollView 根本就不用设置这个属性,而 EdidText 设置 android:scrollbars 也能出滚动条。

android:keepScreenOn

View 在可见的情况下是否保持唤醒状态。

常在 LinearLayout 使用该属性,但是模拟器这里没有效果。

  • android:longClickable 设置是否响应长按事件.
  • android:minHeight 设置视图最小高度
  • android:minWidth 设置视图最小宽度度

android:nextFocusDown

设置下方指定视图获得下一个焦点。

焦点移动是基于一个在给定方向查找最近邻居的算法。如果指定视图不存在,移动焦点时将报运行时错误。

可以设置

  • imeOptions= actionDone,这样输入完即跳到下一个焦点。
  • android:nextFocusLeft 设置左边指定视图获得下一个焦点。
  • android:nextFocusRight 设置右边指定视图获得下一个焦点。
  • android:nextFocusUp 设置上方指定视图获得下一个焦点。

android:onClick

点击时从上下文中调用指定的方法。

这里指定一个方法名称,一般在 Activity 定义符合如下参数和返回值的函数并将方法名字符串指定为该值即可

activity中:public void onClickButton(View view)

layout中:android:onClick=” onClickButton”

android:padding

设置上下左右的边距,以像素为单位填充空白。

  • android:paddingBottom 设置底部的边距,以像素为单位填充空白。
  • android:paddingLeft设置左边的边距,以像素为单位填充空白。
  • android:paddingRight设置右边的边距,以像素为单位填充空白。.
  • android:paddingTop设置上方的边距,以像素为单位填充空白。

android:saveEnabled

设置是否在窗口冻结时(如旋转屏幕)保存 View 的数据,默认为 true,但是前提是你需要设置 id 才能自动保存,参见如下。

当旋转手机时,如果想要保存EditText的文本的内容,有三种方法:

  1. 只要这个EditText设置了android:id属性就会自动保存。
  2. 可以设置EditText的android:freezesText="true",再到相应的Activity中加上如下两个方法: 
    1. CharSequence getSavedText(){
      	return ((TextView)findViewById(R.id.saved)).getText();
      } 
    2. void setSavedText(CharSequence text){
      	((TextView)findViewById(R.id.saved)).setText(text);
      }

如果想在退出这个Activity时,也能保存EditText的内容: 这时可以用state机制来保存。

android:scrollX

以像素为单位设置水平方向滚动的的偏移值,在 GridView中可看的这个效果。

android:scrollY

以像素为单位设置垂直方向滚动的的偏移值

android:scrollbarAlwaysDrawHorizontalTrack

设置是否始终显示垂直滚动条。这里用 ScrollView、ListView测试均没有效果。

android:scrollbarAlwaysDrawVerticalTrack

设置是否始终显示垂直滚动条。这里用 ScrollView、ListView测试均没有效果。

android:scrollbarDefaultDelayBeforeFade

设置 N 毫秒后开始淡化,以毫秒为单位。

android:scrollbarFadeDuration

设置滚动条淡出效果(从有到慢慢的变淡直至消失)时间,以毫秒为单位。Android2.2 中滚动条滚动完之后会消失,再滚动又会出来。

android:scrollbarSize

设置滚动条的宽度。

android:scrollbarStyle

设置滚动条的风格和位置。

设置值:insideOverlay、insideInset、outsideOverlay、outsideInset。

android:scrollbarThumbHorizontal

设置水平滚动条的 drawable(如颜色)。

android:scrollbarThumbVertical

设置垂直滚动条的 drawable(如颜色)

android:scrollbarTrackHorizontal

设置水平滚动条背景(轨迹)的色 drawable(如颜色)

android:scrollbarTrackVertical

设置垂直滚动条背景(轨迹)的 drawable 注意直接设置颜色值如”android:color/white”将得出很难看的效果,甚至都不理解这个属性了,这里可以参见 ApiDemos 里 res/drawable/scrollbar_vertical_thumb.xml 和scrollbar_vertical_track.xml,设置代码为:

android:scrollbarTrackVertical ="@drawable/scrollbar_vertical_track"

android:scrollbars

设置滚动条显示。

  • none(隐藏)
  • horizontal(水平)
  • vertical(垂直)。

见下列代码演示使用该属性让 EditText 内有滚动条。

但是其他容器如 LinearLayout 设置了但是没有效果。

android:soundEffectsEnabled 设置点击或触摸时是否有声音效果

<EditText android:layout_width="fill_parent"
<span style="white-space:pre">	</span>android:layout_height="wrap_content" android:minHeight="50dp"
<span style="white-space:pre">	</span>android:background="@android:drawable/editbox_background"
<span style="white-space:pre">	</span>android:scrollbars="vertical"
<span style="white-space:pre">	</span>android:maxLines="4">
</EditText>
<EditText android:layout_width="fill_parent"
<span style="white-space:pre">	</span>android:layout_height="wrap_content" android:minHeight="50dp"
<span style="white-space:pre">	</span>android:background="@android:drawable/editbox_background"
<span style="white-space:pre">	</span>android:scrollbars="vertical"
<span style="white-space:pre">	</span>android:maxLines="4">
</EditText>

android:tag

设置一个文本标签。可以通过 View.getTag()或 for with View.findViewWithTag()检索含有该标签字符串的 View。但一般最好通过 ID 来查询 View,因为它的速度更快,并且允许编译时类型检查。

android:visibility

设置是否显示 View。

  • visible(默认值,显示)
  • invisible(不显示,但是仍然占用空间
  • gone(不显示,不占用空间)

时间: 2024-10-12 22:51:59

Android_VIEW的相关文章

Android_view的生命周期

onFinishInflate() 当View中所有的子控件均被映射成xml后触发 onMeasure( int , int ) 确定所有子元素的大小 onLayout( boolean , int , int , int , int ) 当View分配所有的子元素的大小和位置时触发 onSizeChanged( int , int , int , int ) 当view的大小发生变化时触发 onDraw(Canvas) view渲染内容的细节 onKeyDown( int , KeyEvent

Android_View和viewgroup测绘顺序

曾经面试时,面试官问了一个View和Viewgroup的测绘顺序,当时答的不是特别完美,今天总结下具体的顺序! 可能有童鞋说多简单啊不就是onMeasure onSizeChanged onLayout onDraw, ---加入一个ViewGroup里面放置了三个View,请说出log输出的具体顺序,附加一条,ondraw方法是谁通知他开始绘制的,以及ondraw中的canvas来自哪里? 好的现在开始我们今天的探索,看起来简单,但是不确定的知识点就是没掌握的知识点,自己弄明白不要模棱两可,感

仿美团实现地域选择(二)

介绍 上篇实现了PopupWindow选择地域,这篇介绍如何实现带有首字母的快速索引list,进行城市选择,我也是参考了相关博文才弄出来的,知道了原理,才发现如此简单. 其中有个开源项目可以参考,但与本文实现的方式略有不同. 地址:https://github.com/woozzu/IndexableListView 美团的城市选择看起来是这样的.本例中不包含搜索,有空再模仿研究下. 原理 1.侧边快速索引和首字母直接在framelayout中布局的,也可以用代码动态生成. 2.获取拼音首字写用

把Android原生的View渲染到OpenGL Texture

http://blog.csdn.net/u010949962/article/details/41865777 最近要把Android 原生的View渲染到OpenGL GLSurfaceView中,起初想到的是截图的方法,也就是把View截取成bitmap后,再把Bitmap渲染到OpenGL中:但是明显这种方法是不可行的,面对一些高速动态更新的View,只有不停的对view 进行截图才能渲染出原生View的效果. 通过大量的Google终于在国外的网站找到了一个做过类似的先例(链接:htt

Android学习笔记(第二篇)View中的五大布局

PS:人不要低估自己的实力,但是也不能高估自己的能力.凡事谦为本... 学习内容: 1.用户界面View中的五大布局... i.首先介绍一下view的概念   view是什么呢?我们已经知道一个Activity是Android的显示层,但是Activity是不能直接显示在屏幕上的,它也像JSP那样,显示的东西是html,那么Android也不例外,Activity是一个抽象的壳子,而显示的东西就是view或者是viewgroup(图形用户组件)....   有了这个概念,我们就清楚view是如何

Android View 之进度条+拖动条+星级评论条....

PS:将来的你会感谢现在奋斗的自己.... 学习内容: 1.进度条 2.拖动条 3.星级评论条 1.进度条...       进图条这东西想必大家是很熟悉的...为了使用户不会觉得应用程序死掉了,因此为之设置一个进度条使应用程序的运行状态更好的反馈给客户...这也就是进度条的作用...因此一般的应用程序都会加入进度条...进度条分为圆形进度条和线性的进度条...目的都是一样的,只是展示的效果是不同的...用代码讲解一下... <LinearLayout xmlns:android="htt