`
阅读更多
Android2.2 API 中文文档系列(5) —— View


前言

  关于View日文转中文的工作在上周女朋友就已经帮我做完,如果要感谢我的翻译成果请先感谢她!但本周太忙,几乎天天加班赶项目,只好把时间挤到周末才完成,这里努力保持一周一篇的进度。View很重要,很多控件都继承自它,所以这里先翻译这篇。



声明

  欢迎转载,但请保留文章原始出处:)

    博客园:http://www.cnblogs.com
    Android中文翻译组:http://androidbox.sinaapp.com/



正文

  一、结构

    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时Button有被点击的效果,但是不执行点击事件。

android:fadingEdge


设置拉滚动条时 ,边框渐变的放向。none(边框颜色不变),horizontal(水平方向颜色变淡),vertical(垂直方向颜色变淡)。参照fadingEdgeLength的效果图

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定义符合如下参数和返回值的函数并将方法名字符串指定为该值即可:

public void onClickButton(View view)

android:onClick=” onClickButton”

android:padding


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



android:paddingBottom


设置底部的边距,以像素为单位填充空白。

              

android:paddingLeft


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

             

android:paddingRight


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

            

android:paddingTop


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

              

android:saveEnabled


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

android:scrollX


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

android:scrollY


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

android:scrollbarAlwaysDraw

HorizontalTrack


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

android:scrollbarAlwaysDraw

VerticalTrack


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

android:scrollbarDefault

DelayBeforeFade


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

android:scrollbarFadeDuration


设置滚动条淡出效果(从有到慢慢的变淡直至消失)时间,以毫秒为单位。Android2.2中滚动条滚动完之后会消失,再滚动又会出来,在1.5、1.6版本里面会一直显示着。

android:scrollbarSize


设置滚动条的宽度。

android:scrollbarStyle


设置滚动条的风格和位置。设置值:insideOverlay、insideInset、outsideOverlay、outsideInset。这里没有试出太多效果,以下依次是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


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

android:tag


设置一个文本标签。可以通过View.getTag()或 for with

View.findViewWithTag()检索含有该标签字符串的View。但

一般最好通过ID来查询View,因为它的速度更快,并且允

许编译时类型检查。

android:visibility


设置是否显示View。设置值:visible(默认值,显示),invisible(不显示,但是仍然占用空间),gone
(不显示,不占用空间)



  四、代码

    4.1  android:duplicateParentState
<LinearLayout android:clickable="true" android:background="#ff0fff" android:layout_width="100dp" android:layout_height="100dp">
        <Button android:duplicateParentState="true" android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>

    4.2  android:scrollbars
<EditText android:layout_width="fill_parent"
android:layout_height="wrap_content" android:minHeight="50dp"
android:background="@android:drawable/editbox_background"
android:scrollbars="vertical"
        android:maxLines="4">
</EditText>



  五、遗留问题

    5.1  以下几个属性翻遍了资料试了很多次都没有效果,只能暂时搁置,以后补上,也欢迎的大家提供意见和线索,分享大家的经验:

      android:scrollbarAlwaysDrawHorizontalTrack   

      android:scrollbarAlwaysDrawVerticalTrack

      android:isScrollContainer



  六、下载

    Word下载地址:http://download.csdn.net/source/2687015

    



结束

  目前已经联系到了2名译者不定期提供翻译稿,欢迎更多译者一起参与Android API 的中文翻译行动!我的邮箱over140@gmail.com。 凡是我翻译的,我尽量保证宁可少翻译一篇,也不要翻译一个我自己都看不懂的属性,个别由于能力有限翻译不出来的会特别标注出来,欢迎大家指正!
分享到:
评论

相关推荐

    Android2.2 API中文文档——View

    很好的android2.2api,很详细。

    Android2.2 API中文文档

    Android2.2 API中文文档 (1) —— TextView (2) —— EditText (3) —— AccessibilityService (4) —— Manifest (5) —— View (6) —— ImageView (7) —— ImageButton (8) —— ...

    android开发入门与实战(下)

    3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣...

    《Google Android开发入门与实战》.pdf

    1.5 更上一层楼——加入android开发社区 5 1.6 本章小结 6 第2章 工欲善其事 必先利其器——搭建android开发环境 7 2.1 开发android应用前的准备 7 2.1.1 android开发系统要求 7 2.1.2 android软件...

    android开发入门与实战(上)

    3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣...

    Google.Android开发入门与实战

    3.3.1 开发的基石——AndroidAPI核心开发包介绍 3.3.2 拓展开发外延——Android可选API介绍 3.4 本章小结 第4章 赚钱的市场——AndroidMarket及应用发布 4.1 GoogleMarket产生背景与目的 4.2 体验“选货”的乐趣...

    Google Android开发入门与实战的代码

    1.5 更上一层楼——加入Android开发社区 5 1.6 本章小结 6 第2章 工欲善其事 必先利其器——搭建Android开发环境 7 2.1 开发Android应用前的准备 7 2.1.1 Android开发系统要求 7 2.1.2 Android软件...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    鉴于市场上用户的手机型号、种类、屏幕分辨率等参差不齐,传统方式根据主流系统分别开发相应的系统耗时又耗力,为了高效开发并节约开发项目成本,本文采用Android+HTML5相结合的方式进行移动端Web系统的设计研发工作...

Global site tag (gtag.js) - Google Analytics