Android2.2 API 中文文檔系列(5) —— View

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 的中文翻譯行動!我的郵箱[email protected]。 凡是我翻譯的,我儘量保證寧可少翻譯一篇,也不要翻譯一個我自己都看不懂的屬性,個別由於能力有限翻譯不出來的會特別標註出來,歡迎大家指正!
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章