View 控制項增加響應位置

2021-06-18 17:58:03 字數 742 閱讀 4578

如果要增加乙個imageview button textview等控制項,如果想增加他們的響應觸發事件的範圍可以通過padding屬性來新增。

原因是,新增了padding的話,就會把控制項內容相對控制項本身的位置變大。

view的繪製機制下,

1)在view onmeasure(int, int) 確定所有子元素的大小,就會相對原來變大;

2)在通過onlayout(boolean, int, int, int, int)

當view分配所有的子元素的大小和位置時觸發。

3)ondraw(canvas) view渲染內容的細節。

4)重新整理顯示到介面出來。

比如:要想增大 username_tv的觸發位置就可以按照下面的屬性增加:

注意:1) 這裡的android:padding="5dip"是上下左右都padding了5dip,如果只需要某個方向就可以單獨新增android:paddingleft

android:paddingright

android:paddingtop

android:paddingbottom 屬性的值。

2)如果android:padding 和  android:paddingleft

android:paddingright

android:paddingtop

android:paddingbottom 這四個屬性當中任何組合同時出現,繪製的時候只會響應android:padding的設定。

View 的位置引數

view 的位置主要由它的四個頂點來決定,分別對應於view的四個屬性 top left right bottom,其中top是左上角縱座標,left是左上角橫座標,right是右下角橫座標,bottom是右下角縱座標。需要注意的是,這些座標都是相對於view的父容器來說的,因此它是一種相對座標,v...

View的位置引數

view的位置主要由它的四個頂點來決定,分別對應於view的四個屬性 top left right bottom。需要注意的是,這些座標都是相對於view的父控制項來說的,因此它是一種相對座標。上圖很清楚的展示了view的位置座標和父容器的關係,motionevent獲取位置與view提供的方法的關...

view的大小,位置

下面有幾個比較重要的關於view的大小以及位置的屬性 uiscreen.mainscreen.bounds 不包括狀態列的大小 由於狀態列高度為20,所以height也就比bounds小20了 當狀態列隱藏時,也就跟bounds一樣了。uiview的大小與位置,大小有本uiview.bounds.s...