3 回答

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
setPadding(int, int, int, int) 這個(gè)就可以控制邊距了
各種Layout用到的一些重要的屬性:
第一類:屬性值為true或false
android:layout_centerHrizontal 水平居中
android:layout_centerVertical 垂直居中
android:layout_centerInparent 相對于父元素完全居中
android:layout_alignParentBottom 貼緊父元素的下邊緣
android:layout_alignParentLeft 貼緊父元素的左邊緣
android:layout_alignParentRight 貼緊父元素的右邊緣
android:layout_alignParentTop 貼緊父元素的上邊緣
android:layout_alignWithParentIfMissing 如果對應(yīng)的兄弟元素找不到的話就以父元素做參照物
第二類:屬性值必須為id的引用名“@id/id-name”
android:layout_below 在某元素的下方
android:layout_above 在某元素的的上方
android:layout_toLeftOf 在某元素的左邊
android:layout_toRightOf 在某元素的右邊
android:layout_alignTop 本元素的上邊緣和某元素的的上邊緣對齊
android:layout_alignLeft 本元素的左邊緣和某元素的的左邊緣對齊
android:layout_alignBottom 本元素的下邊緣和某元素的的下邊緣對齊
android:layout_alignRight 本元素的右邊緣和某元素的的右邊緣對齊
第三類:屬性值為具體的像素值,如30dip,40px
android:layout_marginBottom 離某元素底邊緣的距離
android:layout_marginLeft 離某元素左邊緣的距離
android:layout_marginRight 離某元素右邊緣的距離
android:layout_marginTop 離某元素上邊緣的距離
EditText的android:hint
設(shè)置EditText為空時(shí)輸入框內(nèi)的提示信息。
android:gravity
android:gravity屬性是對該view 內(nèi)容的限定.比如一個(gè)button 上面的text. 你可以設(shè)置該text 在view的靠左,靠右等位置.以button為例,android:gravity=”right”則button上面的文字靠右
android:layout_gravity
android:layout_gravity是用來設(shè)置該view相對與起父view 的位置.比如一個(gè)button 在linearlayout里,你想把該button放在靠左、靠右等位置就可以通過該屬性設(shè)置.以button為例,android:layout_gravity=”right”則button靠右
android:layout_alignParentRight
使當(dāng)前控件的右端和父控件的右端對齊。這里屬性值只能為true或false,默認(rèn)false。
android:scaleType:
android:scaleType是控制圖片如何resized/moved來匹對ImageView的size。ImageView.ScaleType / android:scaleType值的意義區(qū)別:
CENTER /center 按圖片的原來size居中顯示,當(dāng)圖片長/寬超過View的長/寬,則截取圖片的居中部分顯示
CENTER_CROP / centerCrop 按比例擴(kuò)大圖片的size居中顯示,使得圖片長(寬)等于或大于View的長(寬)
CENTER_INSIDE / centerInside 將圖片的內(nèi)容完整居中顯示,通過按比例縮小或原來的size使得圖片長/寬等于或小于View的長/寬
FIT_CENTER / fitCenter 把圖片按比例擴(kuò)大/縮小到View的寬度,居中顯示
FIT_END / fitEnd 把圖片按比例擴(kuò)大/縮小到View的寬度,顯示在View的下部分位置
FIT_START / fitStart 把圖片按比例擴(kuò)大/縮小到View的寬度,顯示在View的上部分位置
FIT_XY / fitXY 把圖片不按比例擴(kuò)大/縮小到View的大小顯示
MATRIX / matrix用矩陣來繪制,動態(tài)縮小放大圖片來顯示。
XML屬性
屬性名稱
描述
android:background
設(shè)置背景色/背景圖片。可以通過以下兩種方法設(shè)置背景為透明:”@android:color /transparent”和”@null”。注意TextView默認(rèn)是透明的,不用寫此屬性,但是Buttom/ImageButton /ImageView想透明的話就得寫這個(gè)屬性了。
android:clickable
是否響應(yīng)點(diǎn)擊事件。
android:contentDescription
設(shè)置View的備注說明,作為一種輔助功能提供,為一些沒有文字描述的View提供說明,如ImageButton。這里在界面上不會有效果,自己在程序中控制,可臨時(shí)放一點(diǎn)字符串?dāng)?shù)據(jù)。
android:drawingCacheQuality
設(shè)置繪圖時(shí)半透明質(zhì)量。有以下值可設(shè)置:auto(默認(rèn),由框架決定)/high(高質(zhì)量,使用較高的顏色深度,消耗更多的內(nèi)存)/low(低質(zhì)量,使用較低的顏色深度,但是用更少的內(nèi)存)。
android:duplicateParentState
如果設(shè)置此屬性,將直接從父容器中獲取繪圖狀態(tài)(光標(biāo),按下等)。 見下面代碼部分,注意根據(jù)目前測試情況僅僅是獲取繪圖狀態(tài),而沒有獲取事件,也就是你點(diǎn)一下LinearLayout時(shí)Button有被點(diǎn)擊的效果,但是不執(zhí)行點(diǎn)擊事件。
android:fadingEdge
設(shè)置拉滾動條時(shí) ,邊框漸變的放向。none(邊框顏色不變),horizontal(水平方向顏色變淡),vertical(垂直方向顏色變淡)。參照fadingEdgeLength的效果圖
android:fadingEdgeLength
設(shè)置 邊框漸變的長度。
android:fitsSystemWindows
設(shè)置布局調(diào)整時(shí)是否考慮系統(tǒng)窗口(如狀態(tài)欄)
android:focusable
設(shè)置是否獲得焦點(diǎn)。若有requestFocus()被調(diào)用時(shí),后者優(yōu)先處理。注意在表單中想設(shè)置某一個(gè)如 EditText獲取焦點(diǎn),光設(shè)置這個(gè)是不行的,需要將這個(gè)EditText前面的focusable都設(shè)置為false才行。在Touch模式下獲取焦點(diǎn)需要設(shè)置focusableInTouchMode為true。
android:focusableInTouchMode
設(shè)置在Touch模式下View是否能取得焦點(diǎn)。
android:hapticFeedbackEnabled
設(shè)置長按時(shí)是否接受其他觸摸反饋事件。這里模擬器沒有試出效果,難道是多點(diǎn)觸摸?找不到資料可以找找performHapticFeedback或HapticFeedback這個(gè)關(guān)鍵字的資料看看。
android:id
給當(dāng)前View設(shè)置一個(gè)在當(dāng)前l(fā)ayout.xml中的唯一編號,可以通過調(diào)用View.findViewById() 或Activity.findViewById()根據(jù)這個(gè)編號查找到對應(yīng)的View。不同的layout.xml之間定義相同的id不會沖突。格式如”@+id/btnName”
android:isScrollContainer
設(shè)置當(dāng)前View為滾動容器。這里沒有測試出效果來,ListView/ GridView/ ScrollView根本就不用設(shè)置這個(gè)屬性,而EdidText設(shè)置android:scrollbars也能出滾動條。
android:keepScreenOn
View在可見的情況下是否保持喚醒狀態(tài)。
常在LinearLayout使用該屬性,但是模擬器這里沒有效果。
android:longClickable
設(shè)置是否響應(yīng)長按事件.
android:minHeight
設(shè)置視圖最小高度
android:minWidth
設(shè)置視圖最小寬度度
android:nextFocusDown
設(shè)置下方指定視圖獲得下一個(gè)焦點(diǎn)。焦點(diǎn)移動是基于一個(gè)在給定方向查找最近鄰居的算法。如果指定視圖不存在,移動焦點(diǎn)時(shí)將報(bào)運(yùn)行時(shí)錯誤??梢栽O(shè)置imeOptions= actionDone,這樣輸入完即跳到下一個(gè)焦點(diǎn)。
android:nextFocusLeft
設(shè)置左邊指定視圖獲得下一個(gè)焦點(diǎn)。
android:nextFocusRight
設(shè)置右邊指定視圖獲得下一個(gè)焦點(diǎn)。
android:nextFocusUp
設(shè)置上方指定視圖獲得下一個(gè)焦點(diǎn)。
android:onClick
點(diǎn)擊時(shí)從上下文中調(diào)用指定的方法。這里指定一個(gè)方法名稱,一般在Activity定義符合如下參數(shù)和返回值的函數(shù)并將方法名字符串指定為該值即可:
public void onClickButton(View view)
android:onClick=” onClickButton”
android:padding
設(shè)置上下左右的邊距,以像素為單位填充空白。
android:paddingBottom
設(shè)置底部的邊距,以像素為單位填充空白。
android:paddingLeft
設(shè)置左邊的邊距,以像素為單位填充空白。
android:paddingRight
設(shè)置右邊的邊距,以像素為單位填充空白。.
android:paddingTop
設(shè)置上方的邊距,以像素為單位填充空白。
android:saveEnabled
設(shè)置是否在窗口凍結(jié)時(shí)(如旋轉(zhuǎn)屏幕)保存View的數(shù)據(jù),默認(rèn)為true,但是前提是你需要設(shè)置id才能自動保存,參見這里。
android:scrollX
以像素為單位設(shè)置水平方向滾動的的偏移值,在GridView中可看的這個(gè)效果。
android:scrollY
以像素為單位設(shè)置垂直方向滾動的的偏移值
android:scrollbarAlwaysDrawHorizontalTrack
設(shè)置是否始終顯示垂直滾動條。這里用ScrollView、ListView測試均沒有效果。
android:scrollbarAlwaysDrawVerticalTrack
設(shè)置是否始終顯示垂直滾動條。這里用ScrollView、ListView測試均沒有效果。
android:scrollbarDefaultDelayBeforeFade
設(shè)置N毫秒后開始淡化,以毫秒為單位。
android:scrollbarFadeDuration
設(shè)置滾動條淡出效果(從有到慢慢的變淡直至消失)時(shí)間,以毫秒為單位。Android2.2中滾動條滾動完之后會消失,再滾動又會出來,在1.5、1.6版本里面會一直顯示著。
android:scrollbarSize
設(shè)置滾動條的寬度。
android:scrollbarStyle
設(shè)置滾動條的風(fēng)格和位置。設(shè)置值:insideOverlay、insideInset、outsideOverlay、outsideInset。這里沒有試出太多效果,以下依次是outsideOverlay與outsideInset效果截圖比較:
android:scrollbarThumbHorizontal
設(shè)置水平滾動條的drawable(如顏色)。
android:scrollbarThumbVertical
設(shè)置垂直滾動條的drawable(如顏色).
android:scrollbarTrackHorizontal
設(shè)置水平滾動條背景(軌跡)的色drawable(如顏色)
android:scrollbarTrackVertical
設(shè)置垂直滾動條背景(軌跡)的drawable注意直接設(shè)置顏色值如”android:color/white”將得出很難看的效果,甚至都不理解這個(gè)屬性了,這里可以參見ApiDemos里res/drawable/ scrollbar_vertical_thumb.xml和scrollbar_vertical_track.xml,設(shè)置代碼為:android:scrollbarTrackVertical ="@drawable/scrollbar_vertical_track"
android:scrollbars
設(shè)置滾動條顯示。none(隱藏),horizontal(水平),vertical(垂直)。見下列代碼演示使用該屬性讓EditText內(nèi)有滾動條。但是其他容器如LinearLayout設(shè)置了但是沒有效果。
android:soundEffectsEnabled
設(shè)置點(diǎn)擊或觸摸時(shí)是否有聲音效果
android:tag
設(shè)置一個(gè)文本標(biāo)簽??梢酝ㄟ^View.getTag()或 for with View.findViewWithTag()檢索含有該標(biāo)簽字符串的View。但一般最好通過ID來查詢View,因?yàn)樗乃俣雀?,并且允許編譯時(shí)類型檢查。
android:visibility
設(shè)置是否顯示View。設(shè)置值:visible(默認(rèn)值,顯示),invisible(不顯示,但是仍然占用空間),gone(不顯示,不占用空間)
XML屬性
屬性名稱描述
android:background 設(shè)置背景色/背景圖片??梢酝ㄟ^以下兩種方法設(shè)置背景為透明:”@android:color/transparent”和”@null”。注意 TextView 默認(rèn)是透明的,不用寫此屬性,但是Buttom/ImageButton/ImageView想透明的話就得寫這個(gè)屬性了。
android:clickable 是否響應(yīng)點(diǎn)擊事件。
android:contentDescription 設(shè)置View的備注說明,作為一種輔助功能提供,為一些沒有文字描述的View提供說明,如ImageButton。這里在界面上 不會有效果,自己在程序中控制,可臨時(shí)放一點(diǎn)字符串?dāng)?shù)據(jù)。
android:drawingCacheQuality 設(shè)置繪圖時(shí)半透明質(zhì)量。有以下值可設(shè)置:auto(默認(rèn),由框架決定)/high(高質(zhì)量,使用較高的顏色深度,消耗更多的內(nèi)存)/low(低質(zhì)量,使用較低的顏色深度,但是用更少的內(nèi)存)。
android:duplicateParentState 如果設(shè)置此屬性,將直接從父容器中獲取繪圖狀態(tài)(光標(biāo),按下等)。見下面代碼部分,注意根據(jù)目前測試情況僅僅是獲取繪圖狀態(tài),而沒有獲取事件,也就是你點(diǎn)一下LinearLayout時(shí)Button有被點(diǎn)擊的效果,但是不執(zhí)行點(diǎn)擊事件。
android:fadingEdge 設(shè)置拉滾動條時(shí),邊框漸變的放向。none(邊框顏色不變),horizontal(水平方向顏色變淡),vertical(垂直方向顏色變淡)。參照fadingEdgeLength的效果圖
android:fadingEdgeLength 設(shè)置邊框漸變的長度。
android:fitsSystemWindows 設(shè)置布局調(diào)整時(shí)是否考慮系統(tǒng)窗口(如狀態(tài)欄)
android:focusable 設(shè)置是否獲得焦點(diǎn)。若有requestFocus()被調(diào)用時(shí),后者優(yōu)先處理。注意在表單中想設(shè)置某一個(gè)如EditText獲取焦點(diǎn),光設(shè)置這個(gè)是不行的,需要將這個(gè)EditText前面的focusable都設(shè)置為false才行。在Touch模式下獲取焦點(diǎn)需要設(shè)置 focusableInTouchMode為true。
android:focusableInTouchMode 設(shè)置在Touch模式下View是否能取得焦點(diǎn)。
android:hapticFeedbackEnabled 設(shè)置長按時(shí)是否接受其他觸摸反饋事件。這里模擬器沒有試出效果,難道是多點(diǎn)觸摸?找不到資料可以找找performHapticFeedback或HapticFeedback這個(gè)關(guān)鍵字的資料看看。
android:id 給當(dāng)前View設(shè)置一個(gè)在當(dāng)前l(fā)ayout.xml中的唯一編號,可以通過調(diào)用View.findViewById() 或Activity.findViewById()根據(jù)這個(gè)編號查找到對應(yīng)的View。不同的layout.xml之間定義相同的id不會沖突。格式如”@+id/btnName”
android:isScrollContainer 設(shè)置當(dāng)前View為滾動容器。這里沒有測試出效果來,ListView/ GridView/ ScrollView根本就不用設(shè)置這個(gè)屬性,而EdidText設(shè)置android:scrollbars也能出滾動條。
android:keepScreenOn View在可見的情況下是否保持喚醒狀態(tài)。
常在LinearLayout使用該屬性,但是模擬器這里沒有效果。
android:longClickable 設(shè)置是否響應(yīng)長按事件.
android:minHeight 設(shè)置視圖最小高度
android:minWidth 設(shè)置視圖最小寬度度
android:nextFocusDown 設(shè)置下方指定視圖獲得下一個(gè)焦點(diǎn)。焦點(diǎn)移動是基于一個(gè)在給定方向查找最近鄰居的算法。如果指定視圖不存在,移動焦點(diǎn)時(shí)將報(bào)運(yùn)行時(shí)錯誤??梢栽O(shè)置imeOptions= actionDone,這樣輸入完即跳到下一個(gè)焦點(diǎn)。
android:nextFocusLeft 設(shè)置左邊指定視圖獲得下一個(gè)焦點(diǎn)。
android:nextFocusRight 設(shè)置右邊指定視圖獲得下一個(gè)焦點(diǎn)。
android:nextFocusUp 設(shè)置上方指定視圖獲得下一個(gè)焦點(diǎn)。
android:onClick 點(diǎn)擊時(shí)從上下文中調(diào)用指定的方法。這里指定一個(gè)方法名稱,一般在Activity定義符合如下參數(shù)和返回值的函數(shù)并將方法名字符串指定為該值即可:
public voidonClickButton(View view)
android:onClick=”onClickButton”
android:padding 設(shè)置上下左右的邊距,以像素為單位填充空白。
android:paddingBottom 設(shè)置底部的邊距,以像素為單位填充空白。
android:paddingLeft 設(shè)置左邊的邊距,以像素為單位填充空白。
android:paddingRight 設(shè)置右邊的邊距,以像素為單位填充空白。.
android:paddingTop 設(shè)置上方的邊距,以像素為單位填充空白。
android:saveEnabled 設(shè)置是否在窗口凍結(jié)時(shí)(如旋轉(zhuǎn)屏幕)保存View的數(shù)據(jù),默認(rèn)為true,但是前提是你需要設(shè)置id才能自動保存,參見這里。
android:scrollX 以像素為單位設(shè)置水平方向滾動的的偏移值,在GridView中可看的這個(gè)效果。
android:scrollY 以像素為單位設(shè)置垂直方向滾動的的偏移值
android:scrollbarAlwaysDrawHorizontalTrack 設(shè)置是否始終顯示垂直滾動條。這里用ScrollView、ListView測試均沒有效果。
android:scrollbarAlwaysDrawVerticalTrack 設(shè)置是否始終顯示垂直滾動條。這里用ScrollView、ListView測試均沒有效果。
android:scrollbarDefaultDelayBeforeFade 設(shè)置N毫秒后開始淡化,以毫秒為單位。
android:scrollbarFadeDuration 設(shè)置滾動條淡出效果(從有到慢慢的變淡直至消失)時(shí)間,以毫秒為單位。Android2.2中滾動條滾動完之后會消失,再滾動又會出來,在1.5、1.6版本里面會一直顯示著。
android:scrollbarSize 設(shè)置滾動條的寬度。
android:scrollbarStyle 設(shè)置滾動條的風(fēng)格和位置。設(shè)置值:insideOverlay、insideInset、outsideOverlay、outsideInset。這里沒有試出太多效果,以下依次是outsideOverlay與outsideInset效果截圖比較:
android:scrollbarThumbHorizontal 設(shè)置水平滾動條的drawable(如顏色)。
android:scrollbarThumbVertical 設(shè)置垂直滾動條的drawable(如顏色).
android:scrollbarTrackHorizontal 設(shè)置水平滾動條背景(軌跡)的色drawable(如顏色)
android:scrollbarTrackVertical 設(shè)置垂直滾動條背景(軌跡)的drawable注意直接設(shè)置顏色值如”android:color/white”將得出很難看的效果,甚至都不理解這個(gè)屬性了,這里可以參見ApiDemos里res/drawable/ scrollbar_vertical_thumb.xml和scrollbar_vertical_track.xml,設(shè)置代碼為:android:scrollbarTrackVertical="@drawable/scrollbar_vertical_track"
android:scrollbars 設(shè)置滾動條顯示。none(隱藏),horizontal(水平),vertical(垂直)。見下列代碼演示使用該屬性讓EditText內(nèi)有滾動條。但是其他容器如LinearLayout設(shè)置了但是沒有效果。
android:soundEffectsEnabled 設(shè)置點(diǎn)擊或觸摸時(shí)是否有聲音效果
android:tag 設(shè)置一個(gè)文本標(biāo)簽。可以通過View.getTag()或 for with View.findViewWithTag()檢索含有該標(biāo)簽字符串的View。但一般最好通過ID來查詢View,因?yàn)樗乃俣雀欤⑶以试S編譯時(shí)類型檢查。
android:visibility 設(shè)置是否顯示View。設(shè)置值:visible(默認(rèn)值,顯示),invisible(不顯示,但是仍然占用空間),gone(不顯示,不占用空間)

TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
LinearLayout phone_LayoutAccount=new LinearLayout(mContext);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.FILL_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
phone_LayoutAccount.setGravity(Gravity.CENTER_VERTICAL);
// params.
params.setMargins(10, 10, 10, 10);
phone_LayoutAccount.setLayoutParams(params);
這是我自己寫的一個(gè)線性布局的,你可以仿照一下就可以了。不懂的可以看api文檔
LinearLayout.LayoutParams

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
首先是垂直居中,下面有朋友已經(jīng)回答了,而控件和控件之間的距離設(shè)置是設(shè)置margin
- 3 回答
- 0 關(guān)注
- 229 瀏覽
添加回答
舉報(bào)