Android UI的一些自我思考

2021-08-19 14:43:30 字數 830 閱讀 5133

最初學習ui的時候,眼裡只能看到單一控制項,看不到view的整個大局,只知道這個空間加上去什麼效果那個控制項加上去又有什麼樣的效果,不過隨著使用的增多,對android ui有了乙個整體的認識,感覺ui的使用就像往房子裡擺放家具一樣,你可以採用不同的方式來放。

你可以採用相對的方式來放,比如你先放乙個床,然後在其兩邊相對的擺放**頭櫃(模擬於android中的relativelayout),而床頭櫃上面還可以再放乙個檯燈(模擬於framelayout),而客廳呢,你可以沿著東牆邊擺放上一排沙發櫃子(模擬於linearlayout),亦或者你也可以選擇做乙個個性化的裝修,指定在什麼位置擺放什麼東西(模擬於absolutelayout)。我們設計ui就像在安排我們的房屋家具布局一樣,可以採用不同的布局方式,而大的布局方式中還可以巢狀小的布局方式。

對於裝修的門外漢,我們可能也就是按照上面的方式來擺放我們的家具,而作為專業的室內設計師,他們會精確的測量我們的房間總的大小,在總的大小限制下,然後測量每個家具的大小,然後出乙個設計圖,畫好每個家具的具體位置,然後開始往裡面搬家具,按照圖紙擺放好。android ui內部實現就像乙個設計師在做室內設計一樣,首先去做measure,測量最外層父view的大小作為限定,然後開始測量裡面子view,如果碰到子view不是viewgroup就直接得到他的大小,如果碰到子view是viewgroup就迭代的去遍歷他的子view做測量,最終得到所有子view的大小及擺放位置,然後呼叫layout把她們放到指定的座標位置,前面的一切準備工作做完了,我們就開始按照得到的大小及座標位置呼叫draw把它們繪製出來。這裡實際測量是會參考你的引數設定的,走向不同的設定流程,就不詳細做說明。

邊寫邊思考邊回憶,讓自己對這塊有了更深的記憶,同時對整個流程有了更清晰的認識。

android UI 的一些技巧

一 去掉edittext的背景顏色 android background null 二 listview 修改某行的值,因為一些功能邏輯,需要修改listview某行的值,那麼就可通過下面的方法,獲取到對應的listview的某行,然後修改。private void updateview int i...

關於Marching Cube的一些疑惑思考

最近學習mc表面繪製,對於開始對於cg方面的一些知識不是很明白,搞的一頭霧水,於是就零零碎碎參考一些網上的程式來學習。主要參考的有3d med 的手冊,網上的一些程式,如 以及跟蹤vtk源 還有這個 但是在閱讀的時候產生的兩個疑惑,表示怎麼算出來的,看了書上的不是很明白,另乙個問題是得到的三角麵片怎...

接觸PHP CI 的一些自我總結

載入ci 能讓 變得簡單 例如 this db where id id this db from mytable this db select username content 當然這句子也能寫到乙個句子裡面去,但是寫成三個就更加清晰。在我的table裡面找到 例如id 15 這條記錄的 使用者名稱...