導航:首頁 > 操作系統 > androidui詳解

androidui詳解

發布時間:2023-06-11 13:03:53

⑴ 【android】UI(二)Android常用的基礎布局容器

Android 的UI 可以分為兩類,一類叫做ViewGroup容器,一類叫做View視圖

View視圖:(TextView,Button,ImageView)都是常用常見的視圖.

ViewGroup容器:內部可以承載、放置、添加View視圖

線性布局就是 從左到右 從上到下 順序排列 的一種布局。下面講一講LinearLayout的基礎屬性。

相對布局在擺放子視圖位置時,按照 指定的參考系 來擺放子視圖的位置, 默認以屏幕左上角(0,0)位置 作為 參考系 擺放位置

使用layout_below使得後面一個組件位於前面一個組件的下方

配合layout_toRightOf使得後面一個組件位於前面一個組件的右方

組件的默認位置都是左上角,組件之間可以重疊。像千層餅一樣,一層壓著一層 可以設置上下左右的對齊、水平垂直居中、設置方式與線性布局相似

參考: 2021Android從零入門到實戰(Kotlin版)

⑵ Android UI設計的基本元素有哪些

移動端的App界面,不論是iOS還是Android ,一般都由四個元素組成,分別是:狀態欄(status bar)、導航欄(navigation)、主菜單欄(submenu)、內容區域(content)。

狀態欄:主要用於顯示信號、運營商、電量等手機狀態的區域;
導航欄:主要顯示當前界面的名稱,包含相應的功能或者頁面間的跳轉按鈕;
主菜單欄:類似於頁面的主菜單,提供整個應用的分類內容的快速跳轉;
內容區域:展示應用提供的相應內容;

需要注意的一點就是,由於Android在4.0之後移除了實體鍵而使用屏幕下方的虛擬鍵,所以,Android將iOS中的主菜單從下方移動到了上方,從而避免誤操作虛擬鍵。

說到這里,就不得不說,雖然android和iOS都是移動端的操作系統,但是他們在UI設計還是存在很大的差異性。這是為什麼呢? 其實這基本上都是因為iOS的閉源導致的,由於它的商業化,導致很多設計被申請了專利,Android在很多地方都必須有所不同,說的最多的就是iOS的彈性滾動,其實Android的ScrollView要實現這樣的效果,只需要修改一個參數的值即可,但是由於這個效果iOS申請的專利,所以Android就無法使用了。

⑶ Android UI | View 的繪制流程詳解

上一篇文章講解了,從setContentView方法到了解View是如何繪制的: 傳送門
在這篇博客講述了, 在ViewRootImpl類中performTraversals方法中具體的繪制過程,其中裡面就有 performMeasure()、performLayout()、performDraw() 三個方法的調用, 那麼要了解View 的測量、布局、繪制,就分別跟這三個方法有關系。

先來看看performMeasure()方法的調用過程

先看performMeasure方法,這個方法有兩個參數,都是通過getRootMeasureSpec()方法計算得到

這里有一個關鍵類MeasureSpec,在這里需要了解下這個類的原理。
這里要感謝 這位博主 ,他講述的很清晰,我自己動手測算了,很容易理解。大概就是用一個數字通過高位記錄Mode,地位記錄size的方式,記錄兩個數據,都是通過一個掩碼做位移運算得來。就是說這個變數(measureSpec)的值可以通過掩碼分別得到測量mode 和 測量size。
繼續查看performMeasure(childWidthMeasureSpec, childHeightMeasureSpec);方法:

這里mView是DecorView對象,那麼他調用的實際上是View的measure方法,查詢DecorView和FrameLayout都沒有measure方法,所以他調用的是View的measure方法

DecorView.onMeasure()方法如下:

FrameLayout.onMeasure方法如下:(這個方法裡面都很重要)

我們先看 , measureChildWithMargins 方法,

getChildMeasureSpec 方法內容如下:

那麼假如我們寫的布局根節點是LinearLayout,那麼就會在執行到View.measure方法裡面的onMeasure方法時,就會調用到LinearLayout.onMeasure方法,具體內容如下:

通過源碼可以看到,還是會循環調用子View , 就這樣循環遞歸的測量完最裡面的一個view,這個過程中onMeasure方法可能會被多次執行。

還是從ViewRootImpl.performTraversals開始

這里跟measure 調用流程其實一樣,DecorView和FrameLayout沒有重寫layout方法,所以調用的是View.layout方法,

由於當前對象是decorView,所以調用的是DecorView.onLayout方法:

FrameLayout.onLayout 方法如下:

繼續查看 View.draw方法

在這個方法裡面,所有重要的方法都在裡面,onDraw、dispatchDraw 等等都在裡面,我看了下這個方法裡面都挺重要就沒刪減,也都能看得懂。

到此View的整個繪制流程就搞清楚了。

關於子view測量
1、不管父View是何模式,若子View有確切數值,則子View大小就是其本身大小,且mode是EXACTLY
2、若子View是match_parent,則模式與父View相同,且大小同父View(若父View是UNSPECIFIED,則子View大小為0)
3、若子View是wrap_content,則模式是AT_MOST,大小同父View,表示不可超過父View大小(若父View是UNSPECIFIED,則子View大小為0)

關於繪制流程
我們自定義的view,基本上只需要重寫 onMeasure、onLayout、onDraw即可

⑷ Android UI規范是什麼

從事UI設計行業的朋友都知道,每一張設計稿都是有規范尺寸的,並且IOS的和Android還不同,IOS UI設計規范為375*667 1x的尺寸,那麼Android UI規范是什麼呢,下面讓我們一起來了解一下。

特別提示

本文尺寸均為1x。

⑸ 安卓手機里的系統UI是啥

這都是因為 Android 的開放性,Android 聯盟對全世界開放了它的全部代碼,並且有一個專業團隊維護更新,這些代碼不但是免費使用的,而且允許你在它原來的基礎的上進行一些改動。因此,很多手機生產商便會根據自己的企業文化和市場需求,在原生Android上再做修改和開發,從而讓自己的生產的手機在市場上和和其他品牌的手機有所區別。手機廠商基於Android 系統再定製的系統,一般情況下是不對外開放的源代碼的,屬於自有知識產權。

這些基於Android系統再定製的系統我一般稱之為深度定製的Android用戶界面(即User Interface),也就是業界常說的用戶UI,簡稱UI。
市場上常見的幾種 Android 定製化UI系統主要有 HTC 的 HTC Sense、摩托羅拉的 MotoBlur、索尼愛立信的 Nexus UI、三星 TouchWiz、魅族M9的定製UI、小米的MIUI 以及少數搭載 Android 原生系統的手機。

⑹ android的ui布局有哪些

布局(Layout)的概念是針對Activity的,Activity就是布滿整 個Android設備的窗口或者懸浮於其他窗口上的交互界面。在一個應用程序中通常由多個Activity構成,每個需要顯示的Activity都需要在AndroidManifest.xml文件之中聲明。

通常情況下,開發人員可以使用兩種方式來創建UI組件,一種方式是使用XML方式來配置UI組件的相關屬性,然後裝載這些UI組件,這也是最常用的方式。但是有些特殊情況下,需要動態生成UI組件,則需要使用第二種方式,完全使用java代碼來創建UI組件。

XML布局文件是Android系統中定義的Layout的常用方式,所有布局文件必須包含在res/layout目錄中,且必須符合Java的命名 規范。當在res/layout目錄下新增了布局文件之後,R.java文件會自動收錄該布局資源,Java代碼可通過setContentView方法 在Activity中顯示該Layout。

setContentView(R.layout.<資源名稱>);

在布局文件中可以指定UI組件的android:id屬性,該屬性的屬性值代表該組件的唯一標識。通過Activity.findViewById()訪問,並且findViewById()必須在setContentView載入xml文件之後使用,否則會拋出異常。

findViewById(R.id.)

Android應用的絕大部分UI組件都放在android.widget包及其子包、android.view包及其子包中,Android應用的 所有UI組件都繼承了View類。View類還有一個重要的子類:ViewGroup,ViewGroup類是所有布局管理器的父類。

ViewGroup容器控制其子組件的分布依賴於ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams兩個內部類。

ViewGroup.LayoutParams提供兩個XML屬性設定組件的大小。

android:layout_height:指定該子組件的基本高度;

android:layout_width:指定該子組件的基本寬度。

這兩個屬性有三個基本值,這兩個屬性有三個特定的值:

fill_parent:指定組件的高度、寬度與父容器組件的一樣。

match_parent:與fill_parent一樣,Android2.2開始推薦使用。

warp_content:內容包裹。

ViewGroup.MarginLayoutParams用於控制子組件周圍的頁邊距。

android:layout_marginBottom(下邊距);

android:layout_marginLeft(左邊距);

android:layout_marginRight(右邊距):

layout_marginTop(上邊距)

對於View的尺寸,android提供了三種單位供選擇使用:

px:像素。

dp:dpi,表示屏幕實際的像素。

sp:與scale無關的像素,與dp類似。

尺寸單位選擇的技巧:如果設置長度、高度等屬性時可以使用dp或sp,但是如果設置字體,需要使用px。如果使用dp或sp,系統會根據屏幕密度的變化進行轉換。

為了適應各種界面風格,Android提供了五種布局規范,利用這五種布局,基本上可以在設備上隨心所欲的擺放任何UI組件,這五種布局分別是:

FrameLayout(幀布局)。

LinearLayout(線性布局)

RelativeLayout(相對布局)。

TableLayout(表格布局)。

AbsoluteLayout(絕對布局)。

線性布局(LinearLayout)

LinearLayout是最常用的布局方式,在XML文件中使用標記。它會將容器里的UI組件一個一個挨著排列起來。但是LinearLayout不會換行,當UI組件超出屏幕之後,則不會被顯示出來。LinearLayout有兩個重要的XML屬性:androidgravity(對齊方 式);android:orientation(排列方式)。

android:orientation(排列方式),設定了LinearLayout中包含的UI組件的排列方式,有兩個選項vertical(豎向)、horizontal(橫向,默認值)

android:gravity(對齊方式),設定LinearLayout中包含UI組件的對齊方式,其選項很多,常用上(top)、下(bottom)、左(left)、右(right)。

⑺ Android系統的ui是什麼意思

UI及用戶界面,就是所有你能看到的界面
activity
顯示界面(就是UI)(顯示的界面都是繼承activity完成的)
service
服務(UI的後台)(後台運行的,可以理解為沒有界面的activity)
Broadcast
Receiver
廣播(做廣播,通知時候用到)
Content
Provider
數據通信(數據之間通信,同個程序間數據,或者是不同程序間通信)

⑻ android ui是什麼

谷歌手機平台Android開發的ui。

UI及用戶界面,就是所有你能看到的界面
activity 顯示界面(就是UI)(顯示的界面都是繼承activity完成的)
service 服務(UI的後台)(後台運行的,可以理解為沒有界面的activity)
Broadcast Receiver 廣播(做廣播,通知時候用到)
Content Provider 數據通信(數據之間通信,同個程序間數據,或者是不同程序間通信)

閱讀全文

與androidui詳解相關的資料

熱點內容
加密dns列表 瀏覽:988
股市操練大全八冊pdf 瀏覽:120
c傳遞指針到python 瀏覽:163
手動添加引導的命令 瀏覽:54
740伺服器小藍條是做什麼的 瀏覽:523
linux文件操作命令 瀏覽:127
安卓手機圖片文件夾加鎖 瀏覽:781
steam提示音在哪個文件夾 瀏覽:339
項目開發全程實錄pdf 瀏覽:532
單片機reset 瀏覽:597
pdf怎麼是英文 瀏覽:971
旗雲2壓縮機保險 瀏覽:374
做程序員壓力大嗎表情包 瀏覽:312
pdf下拉 瀏覽:373
php去掉小數後面的0 瀏覽:956
阿里備案買什麼伺服器 瀏覽:263
網路驅動下載到哪個文件夾 瀏覽:483
達內程序員培訓西安 瀏覽:507
人保送車主惠app上怎麼年檢 瀏覽:606
android手機開機密碼 瀏覽:482