當前位置:首頁 » 安卓系統 » android做界面

android做界面

發布時間: 2022-05-27 01:58:35

㈠ Android 界面排版

Android布局是應用界面開發的重要一環,在Android中,共有五種布局方式,分別是:FrameLayout(框架布局),LinearLayout (線性布局),AbsoluteLayout(絕對布局),RelativeLayout(相對布局),TableLayout(表格布局).
一、FrameLayout
這個布局可以看成是牆腳堆東西,有一個四方的矩形的左上角牆腳,我們放了第一個東西,要再放一個,那就在放在原來放的位置的上面,這樣依次的放,會蓋住原來的東西。這個布局比較簡單,也只能放一點比較簡單的東西。

二、LinearLayout

線性布局,這個東西,從外框上可以理解為一個div,他首先是一個一個從上往下羅列在屏幕上。每一個LinearLayout裡面又可分為垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。當垂直布局時,每一行就只有一個元素,多個元素依次垂直往下;水平布局時,只有一行,每一個元素依次向右排列。
linearLayout中有一個重要的屬性 android:layout_weight="1",這個weight在垂直布局時,代錶行距;水平的時候代表列寬;weight值越大就越大。

三、AbsoluteLayout

絕對布局猶如div指定了absolute屬性,用X,Y坐標來指定元素的位置android:layout_x="20px" android:layout_y="12px" 這種布局方式也比較簡單,但是在垂直隨便切換時,往往會出問題,而且多個元素的時候,計算比較麻煩。 AbsoluteLayout 可以讓子元素指定準確的x/y坐標值,並顯示在屏幕上。AbsoluteLayout 沒有頁邊框,允許元素之間互相重疊(盡管不推薦)。他是絕對坐標,所以在實際中不提倡使用。
相對布局可以理解為某一個元素為參照物,來定位的布局方式。主要屬性有:
相對於某一個元素
// 相對於給定ID控制項
android:layout_above 將該控制項的底部置於給定ID的控制項之上;
android:layout_below 將該控制項的底部置於給定ID的控制項之下;
android:layout_toLeftOf 將該控制項的右邊緣與給定ID的控制項左邊緣對齊;
android:layout_toRightOf 將該控制項的左邊緣與給定ID的控制項右邊緣對齊;

android:layout_alignBaseline 將該控制項的baseline與給定ID的baseline對齊;
android:layout_alignTop 將該控制項的頂部邊緣與給定ID的頂部邊緣對齊;
android:layout_alignBottom 將該控制項的底部邊緣與給定ID的底部邊緣對齊;
android:layout_alignLeft 將該控制項的左邊緣與給定ID的左邊緣對齊;
android:layout_alignRight 將該控制項的右邊緣與給定ID的右邊緣對齊;

// 相對於父組件
android:layout_alignParentTop 如果為true,將該控制項的頂部與其父控制項的頂部對齊;
android:layout_alignParentBottom 如果為true,將該控制項的底部與其父控制項的底部對齊;
android:layout_alignParentLeft 如果為true,將該控制項的左部與其父控制項的左部對齊;
android:layout_alignParentRight 如果為true,將該控制項的右部與其父控制項的右部對齊;

// 居中
android:layout_centerHorizontal 如果為true,將該控制項的置於水平居中;
android:layout_centerVertical 如果為true,將該控制項的置於垂直居中;
android:layout_centerInParent 如果為true,將該控制項的置於父控制項的中央;

// 指定移動像素
android:layout_marginTop 上偏移的值;
android:layout_marginBottom 下偏移的值;
android:layout_marginLeft 左偏移的值;
android:layout_marginRight 右偏移的值;

example:
android:layout_below = "@id/***"
android:layout_alignBaseline = "@id/***"
android:layout_alignParentTop = true
android:layout_marginLeft = 「10px」

還可以指定邊距等,具體詳見API

五.TableLayout
表格布局類似Html裡面的Table。每一個TableLayout裡面有表格行TableRow,TableRow裡面可以具體定義每一個元素,設定他的對齊方式 android:gravity="" 。
每一個布局都有自己適合的方式,另外,這五個布局元素可以相互嵌套應用,做出美觀的界面。TableLayout 將子元素的位置分配到行或列中。一個TableLayout 由許多的TableRow 組成,每個TableRow 都會定義一個 row 。TableLayout 容器不會顯示row 、cloumns 或cell 的邊框線。每個 row 擁有0個或多個的cell ;和html中的table查不多少。在實際中也經常使用。

Android的Margin和Padding跟Html的是一樣的。通俗的理解 Padding 為內邊框,Margin 為外邊框
對應的屬性為
android:layout_marginBottom="25dip"
android:layout_marginLeft="10dip"
android:layout_marginTop="10dip"
android:layout_marginRight="10dip"
android:paddingLeft="1dip"
android:paddingTop="1dip"
android:paddingRight="1dip"
android:paddingBottom="1dip"
如果左右上下都是相同的設置則可以直接設置
android:layout_margin="10dip"
android:padding="5dip"

過去,程序員通常以像素為單位設計計算機用戶界面。例如,定義一個寬度為300像素的表單欄位,列之間的間距為5個像素,圖標大小為16×16像素 等。這樣處理的問題在於,如果在一個每英寸點數(dpi)更高的新顯示器上運行該程序,則用戶界面會顯得很小。在有些情況下,用戶界面可能會小到難以看清 內容。

與解析度無關的度量單位可以解決這一問題。Android支持下列所有單位。

px(像素):屏幕上的點。

in(英寸):長度單位。

mm(毫米):長度單位。

pt(磅):1/72英寸。

dp(與密度無關的像素):一種基於屏幕密度的抽象單位。在每英寸160點的顯示器上,1dp = 1px。

dip:與dp相同,多用於android/ophone示例中。

sp(與刻度無關的像素):與dp類似,但是可以根據用戶的字體大小首選項進行縮放。

為了使用戶界面能夠在現在和將來的顯示器類型上正常顯示,建議大家始終使用sp作為文字大小的單位,將dip作為其他元素的單位。當然,也可以考慮使用矢量圖形,而不是用點陣圖.
dp是與密度無關,sp除了與密度無關外,還與scale無關。
如果屏幕密度為160,這時dp和sp和px是一樣的。1dp=1sp=1px,但如果使用px作單位,如果屏幕大小不變(假設還是3.2寸),而屏幕密度變成了320。
那麼原來TextView的寬度設成160px,在密度為320的3.2寸屏幕里看要比在密度為160的3.2寸屏幕上看短了一半。
但如果設置成160dp或160sp的話。系統會自動將width屬性值設置成320px的。
也就是160 * 320 / 160。其中320 / 160可稱為密度比例因子。也就是說,如果使用dp和sp,系統會根據屏幕密度的變化自動進行轉換

㈡ 如何定製 android 主界面

果你要定製一個Android系統,你想用你自己的Launcher(Home)作主界面來替換Android自己的Home,而且不希望用戶安裝的Launcher來替換掉你的Launcher.
我們可以通過修改Framework來實現這樣的功能。

這里以Android2.1的源代碼為例來實際說明。

1)首先了解一下Android的啟動過程。
Android系統的啟動先從Zygote開始啟動,然後......(中間的過程就不說了).....一直到了SystemServer(framework)這個地方,看到這段代碼:

/**
* This method is called from Zygote to initialize the system. This will cause the native
* services (SurfaceFlinger, AudioFlinger, etc..) to be started. After that it will call back
* up into init2() to start the Android services.
*/
native public static void init1(String[] args);

public static void main(String[] args) {
if (SamplingProfilerIntegration.isEnabled()) {
SamplingProfilerIntegration.start();
timer = new Timer();
timer.schele(new TimerTask() {
@Override
public void run() {
SamplingProfilerIntegration.writeSnapshot("system_server");
}
}, SNAPSHOT_INTERVAL, SNAPSHOT_INTERVAL);
}

// The system server has to run all of the time, so it needs to be
// as efficient as possible with its memory usage.
VMRuntime.getRuntime().setTargetHeapUtilization(0.8f);

System.loadLibrary("android_servers");
init1(args);
}

public static final void init2() {
Log.i(TAG, "Entered the Android system server!");
Thread thr = new ServerThread();
thr.setName("android.server.ServerThread");
thr.start();
}
}

從SystemServer的main函數開始啟動各種服務。
首先啟動init1,然後啟動init2.
從上面的注釋可以看到:init1這個方法時被Zygote調用來初始化系統的,init1會啟動native的服務如SurfaceFlinger,AudioFlinger等等,這些工作做完以後會回調init2來啟動Android的service。

這里我們主要來關注init2的過程。
init2中啟動ServerThread線程,
ServerThread中啟動了一系列的服務,比如這些:

ActivityManagerService
EntropyService
PowerManagerService
TelephonyRegistry
PackageManagerService
AccountManagerService
BatteryService
HardwareService
Watchdog
SensorService
BluetoothService
StatusBarService
ClipboardService
InputMethodManagerService
NetStatService
ConnectivityService
AccessibilityManagerService
NotificationManagerService
MountService
DeviceStorageMonitorService
LocationManagerService
SearchManagerService
FallbackCheckinService
WallpaperManagerService
AudioService
BackupManagerService
AppWidgetService

這些大大小小的服務起來以後,開始
((ActivityManagerService)ActivityManagerNative.getDefault()).systemReady()
在systemReady後開始開始啟動Launcher。

在尋找Launcher的時候是根據HOME的filter(在Manifest中定義的<category android:name="android.intent.category.HOME" />)來過濾。
然後根據filter出來的HOME來啟動,如果只有一個HOME,則啟動這個HOME,如果用戶自己裝了HOME,那就會彈出來一個列表供用戶選擇。

我們現在希望從這里彈出我們自己定製的Launcher,同時也不希望彈出選擇HOME的界面,我們不希望用戶修改我們的home,比如我們的home上放了好多廣告,以及強制安裝的程序,不希望用戶把它幹掉。

我們可以通過這樣來實現:

2) 定義一個私有的filter選項,然後用這個選項來過濾HOME.
一般情況下我們使用Manifest中定義的<category android:name="android.intent.category.HOME"來過濾的,我們現在增加一個私有的HOME_FIRST過濾。

在Intent.java(frameworks/base/core/java/android/content/Intent.java)中添加兩行代碼

//lixinso:添加CATEGORY_HOME_FIRST
@SdkConstant(SdkConstantType.INTENT_CATEGORY)
public static final String CATEGORY_HOME_FIRST = "android.intent.category.HOME_FIRST";

3)修改和CATEGORY_HOME相關的所有的地方,都改成HOME_FIRST,主要是framework中的這幾個地方:

frameworks/base/services/java/com/android/server/am/ActivityManagerService.java中
//intent.addCategory(Intent.CATEGORY_HOME);
改成intent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso:
//if (r.intent.hasCategory(Intent.CATEGORY_HOME)) {
改成if (r.intent.hasCategory(Intent.CATEGORY_HOME_FIRST)) { //lixinso: Intent.CATEGORY_HOME -> Intent.CATEGORY_HOME_FIRST

frameworks/base/services/java/com/android/server/am/HistoryRecorder.java中
// _intent.hasCategory(Intent.CATEGORY_HOME) &&
改成 _intent.hasCategory(Intent.CATEGORY_HOME_FIRST) && //lixinso: Intent.CATEGORY_HOME->Intent.CATEGORY_HOME_FIRST

frameworks/policies/base/mid/com/android/internal/policy/impl/MidWindowManager.java中
//mHomeIntent.addCategory(Intent.CATEGORY_HOME);
改成 mHomeIntent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso

frameworks/policies/base/mid/com/android/internal/policy/impl/RecentApplicationsDialog.java中
//new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),0);
改成 new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME_FIRST),0); //lixinso

frameworks/policies/base/phone/com/android/internal/policy/impl/PhoneWindowManager.java中
//mHomeIntent.addCategory(Intent.CATEGORY_HOME);
改成 mHomeIntent.addCategory(Intent.CATEGORY_HOME_FIRST); //lixinso

frameworks/policies/base/phone/com/android/internal/policy/impl/RecentApplicationsDialog.java中
//ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),0);
改成 ResolveInfo homeInfo = pm.resolveActivity(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME_FIRST),0); //lixinso

4) 寫一個自己的Launcher.
可以參考android sample中的Launcher,或者android源代碼中的 /packages/apps/Launcher 來寫。
在Launcher中標記其是不是Launcher的最關鍵的代碼時Manifest中的filter:android:name="android.intent.category.HOME"
現在我們定義了自己的filter,那麼,我們在我們自己寫的Launcher中將Manifest改為:
<application android:process="android.process.acore3" android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".FirstAppActivity"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME_FIRST" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.MONKEY" />
</intent-filter>
</activity>
</application>

然後將編譯好的apk放到/out/target/proct/generic/system/app目錄下。

5)將Android自帶的Launcher刪除掉,包括源代碼(packages/apps/Launcher)和apk(/out/target/proct/generic/system/app/Launcher.apk)。

6)
做完這些工作,就可以重新編譯Android了,我們可以編譯修改過的幾個相關的包。
如果之前編譯過了Android源碼,可以用mmm命令來編譯部分的改動。
這里需要這樣編譯:

$ . build/envsetup.sh
$ mmm frameworks/base
$ mmm frameworks/base/services/java
$ mmm frameworks/policies/base/mid
$ mmm frameworks/policies/base/phone

7)
編譯完成後重新生成img文件。
$ make snod

8) 現在可以啟動Android模擬器來看效果了。
首先設置環境變數:
$ export ANDROID_PRODUCT_OUT= ./out/target/proct/generic
然後切換到
$ cd ./out/host/linux-x86/bin
運行
$ ./emulator

這樣我們啟動的模擬器裡面用的image就是我們剛才編譯好的自己定製的東西了。
從模擬器上可以看到啟動的Launcher是我們自己的Launcher,不會出現默認的Launcher了,也不會出現選擇界面。

9)我們再驗證一下,如果用戶裝上了一個其他的Launcher(Home)會怎麼樣。
從網上找一個一般的Launcher或者自己寫一個一般的Launcher裝上去,重新啟動,不會出現選擇界面。
按HOME鍵也不會出來兩個HOME來選擇。

㈢ 如何做好android應用的界面設計

這段時間自己研究了挺多安卓的東西,有了更多的想法,在此描述一下。
方法/步驟
學習原生軟體的界面開發,而且最好還是看一些開源的,無論從設計的角度還是從開發的角度都是極好的。
比如優秀的作品很多,這些不開源學習界面就好,開源的可以看看系統的應用。和系統本身結合的非常好,設計風格和系統也很統一,給用戶較好的體驗。
2
確定整體產品色彩基調,色彩基調可以從產品功能中提取,也可以從產品LOGO中提取;
3
做出界面原型,包括功能布局、頁面交互等元素;
4
在界面原型基礎上進行色彩添加,進一步的細節調整;
5
有了好的外形基礎後,再就是回歸到用戶體驗。記住用戶才是第一位的。交互設計通常靠外形吸引用戶,但真正留住用戶的是細節上的人性化。讓這些極簡的設計細節控制用戶的生活習慣,最終讓用戶離不開它們!根據用戶使用體驗反饋再次修改界面,不斷完善。

㈣ Android設置界面怎麼做

步驟/方法
1
1、下載設置必備的幾款軟體,分別是LauncherPro、Desktop Visualizer。

2
2、下載Android界面顯示必備的Windows Phone 7的素材包。

3
3、下載透明時鍾插件。

4
4、在以上必備軟體素材下載完畢之後,安裝LauncherPro和Desktop Visualizer以及透明時鍾,把Android界面顯示必備的Windows Phone 7的素材包的素材文件夾,放置到手機SD卡里。

5
5、選擇LauncherPro作為當前默認界面,需在一款空白的屏幕。點擊Android手機的Menu鍵,選擇首選項(Preferences)進入LauncherPro的設置。

6
6、選擇外觀設置,選擇快捷菜單背景,進入圖庫,找到以下圖片,設置即可。
Windows Phone 7界面底部素材

7
7、把LauncherPro的界面設置成五行,在剛剛的設置中找到高級設置,勾選桌面5行圖標。

8
8、回到桌面,把LauncherPro的底部圖標統統清除,長按其中一個,然後選擇更改快捷方式,選擇空白,最後在中間的原點處長按選擇更改快捷方式,選擇程序菜單,再選擇自定義圖標,再到圖庫中選擇上圖的背景圖片即可。在這完成之後,Android界面顯示的Windows Phone 7底部就已經完成。

9
9、在桌面空白處長按,選擇Desktop Visualize(中)的Widget,進入Widget設置界面。在選擇圖標中,選擇影像檔,在圖庫中選擇添加前面下載的小圖片素材,在選擇操作中添加你要打開的程序。
添加Desktop Visualiz的Widget
長按新添加的Widget,拖動小箭頭調整大小。調整完畢後,按返回鍵。 希望可以幫到你

㈤ 如何做好安卓應用的界面設計

現在的軟體應用大致可以分為安卓系統和ios的系統。而iOS系統只適用於蘋果軟體,不適用於其他的軟體。而現在大多數的電子產品,國產的基本上都是安卓系統.隨著中國市場的迅速發展。安卓系統比越來越多的人使用,但是怎麼樣才能做好安卓應用的頁面設計呢


首先我們要想做好安卓應用的頁面設計,我們必須對安卓系統進行更深入的了解。充分理解安卓應用所使用的范圍和繼續開發,研究安卓應用的一些拓展的功能。深入的剖析安卓系統,他的優點和缺點,以及有什麼改進的地方。以及改進的方法。

總體而言,就像我們現在的社會主義道路一樣。雖然是借鑒恩格斯和馬克思他們的先進思想,但是我們還必須結合我們的毛澤東思想和鄧小平理論。走出一條屬於我們中國的特色的社會主義道路。安卓應用的頁面設計也是這樣,要結合自己本身的實際情況。設計出獨特的,吸引人的設計。

㈥ android界面設計有什麼好的方案

  • 多看android官方規范,靈活使用8dp(一般間距)與48dp(一般可觸摸區域)。

  • 靈活使用點九切圖。圖標與按鈕分開切,字全讓研發自己輸入。千萬不要切死圖。

  • 早期的時候跟研發約好時間。比如某個半天,你弄個筆記本,跟研發坐一起,嚴格的把你的規范執行下去,後期大家合作起來就方便了。

  • 圖一定要像素級別(包括720的圖標),所有錨點都優化好。

  • 還是研發吧,沒事多往那邊跑,帶點乾果花生什麼的一邊吃一邊改。他是怎麼實現的,你一定要問清楚,你想怎麼實現,你也得跟他講清楚。

  • 仍然還是研發,他們不怕麻煩,只是怕做好後又改。所以不要老讓他們嘗試,自己多做效果圖,嚴謹一點,多用axure把效果圖轉手機里看看。

  • 做一個UI套件(dribbble上搜索UI kit看下別人怎麼做的),後期你也會方便很多,重要的是交接工作會很好。

  • 多看知乎,有些關於ps的技巧,作圖技巧還蠻實用的。



㈦ 安卓開發,怎麼做一個全屏的界面

getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN)。
在android項目的主配置文件的application的屬性中設置,設置方式android:theme="@android:style/Theme.NoTitleBar.Fullscreen"。
在android項目的主配置文件的application的屬性中設置,設置方式二:
android:theme="@style/fullscreem"。
super.onCreate(savedInstanceState)。
requestWindowFeature(Window.FEATURE_NO_TITLE);//無title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN。
WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏
setContentView(R.layout.main)。
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);//無title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN。
WindowManager.LayoutParams.FLAG_FULLSCREEN);//全屏
setContentView(R.layout.main。

㈧ Android程序界面設計有哪些方式

一、 界面布局之線性布局(LinearLayout)
這種布局比較常用,也比較簡單,就是每個元素佔一行,把它按照橫向排放,也就是每個元素佔一列。在布局中都按照垂直或者水平的順序依次排列子元素,每一個子元素都位於前一個元素之後。
二、 界面布局之相對布局(RelativeLayout)
相對布局是android界面設計中比較常用和好用的一個布局方式。
三、 界面布局之表格布局(TableLayout)
表格布局採用行、列的形式來管理元素組件。TableLayout的行和列不需要聲明,而是採用添加方法控制。
每次在TableLayout中添加一個TableRow,一個TableRow就代表表格中的一行,也同樣是容器,往裡面添加一個子組件就代表增加一列。在表格布局中,列的寬度由最寬的那個單元格決定,整個表格布局寬度取決於父容器的寬度
四、 界面布局之絕對布局(AbsoluteLayout)
特點:以坐標的方式來定位在屏幕上的位置,引起缺乏靈活性,在沒有絕對定位的情況下相比其他類型的布局更難維護
五、 界面布局之幀布局(FrameLayout)
FrameLayout是五大布局中最簡單的一個布局。在幀布局中,整個界面被當成一塊空白備用區域,所有的子元素都不能被指定放置的位置,它們統統放於這塊區域的左上角,並且後面的子元素直接覆蓋在前面的子元素之上,將前面的子元素部分和全部遮擋。

㈨ 怎麼做android的一個界面

這涉及構建屏幕基本元素,怎麼在xml(定義文件)內定義屏幕、用你的代碼生成、在不同任務你需要操作你的用戶介面。Android生成屏幕有三種方式:xml配置生成;通過你自己用戶界面介面生成;直接用代碼生成。
根據MVC原則,UI應該與程序邏輯相分離,因此,在XML中定義UI結構是高度推薦的。此外,一個程序從一個屏幕方案調整到另一個也容易得多。在XML中定義UI跟創建一個普通的HTML文檔非常相似,例如,你有如下的一個文件:
<html>

<head>

<title>PageTitle</title>

</head>

<body>

Thecontentofthebodyelement.

</body>

</html>

就如Android的XML布局一樣,所有的元素都是結構化的,能夠通過樹形結構來表示:

<?xmlversion=」1.0″encoding=」utf-8″?>

<LinearLayout

http://schemas.android.com/apk/res/android

android:orientation=」vertical」

android:layout_width=」fill_parent」

android:layout_height=」fill_parent」>

<TextView

android:layout_width=」wrap_content」

android:layout_height=」wrap_content」

android:text=」HelloWorld」/>

</LinearLayout>

1屏幕元素的層次
Android應用程序的基礎功能單元就是Activity–android.app.Activity類中的一個對象。一個Activity可以做很多事,但是他自己並不會顯示到屏幕上。想要讓你的Activity顯示在屏幕上並且設計它的UI,你需要使用view和viewgroup–Android平台基礎的用戶界面表達單元。
Views
基礎類的對象。它是一個存儲有屏幕上特定的一個矩形內布局和內容屬性的數據結構。一個View對象處理測距和布局,繪圖,焦點變換,滾動條,還有屏幕區域自己表現的按鍵和手勢。
類作為一個基類,為widget(窗體部件)服務,widget–是一組用於繪制交互屏幕元素的完全實現子類。Widget處理它們自己的測距和繪圖,所以你可以更快速地用它們去構建你的UI。可用到的widget包括Text,EditText,InputMethod,Button,RadioButton,Checkbox,和ScrollView……。
Viewgroups
一個ViewGroup是一個android.view.Viewgroup類的對象。正如同它的名字表明的一樣,一個viewgroup是一個特殊的view對象,它的功能是去裝載和管理一組下層的view和其他viewgroup,Viewgroup讓你可以為你的UI增加結構並且將復雜的屏幕元素構建成一個獨立的實體。
group類作為一個基類為layout(布局)服務,layout–是一組提供屏幕界面通用類型的完全實現子類。layout讓你可以為一組view構建一個結構。
一個樹形結構的界面
在Android平台上,你用view樹和viewgroup節點來定義一個Activity的UI,就如同下面圖表一樣。這個樹可以如你需要那樣簡單或者復雜,並且你可以使用Android的預定義widget和layout或者你自定義的view類型來構建它。

㈩ 如何做好安卓應用的界面設計

android界面設計的工作在正規情況下,會和編程部分分開,屬於UI設計師的工作范疇,當然UI設計師與程序開發者必須了解相關的android的UI構建機制(介面,實現方法等等)方便協同工作。 安卓的按鈕包括系統默認的其實都是圖片,調用的圖片資源由具體的代碼控制,這些代碼的實現方法開發者必須弄懂,droiddraw也不過是生成一些預先寫好的調用默認圖片的代碼。 UI設計要涉及,點對點顯示,效果實現方式,界面人機交互原理,內存佔用優化優化等等好多原則,因此不同dpi的界面實際上不僅僅是簡單地調整一下png大小而已(如果只是簡單縮放直接用全局的代碼實現快得多)。不同的UI設計師會有自己的不同實現方法,例如我就比較喜歡用photo的動作自己做批處理腳本

熱點內容
伺服器在線訪問數由什麼決定 發布:2024-05-06 11:39:15 瀏覽:677
途觀21款哪個配置值得買 發布:2024-05-06 11:29:00 瀏覽:91
pythonspyder 發布:2024-05-06 11:15:53 瀏覽:165
線上伺服器如何資源監控 發布:2024-05-06 11:15:07 瀏覽:298
頁游腳本檢測 發布:2024-05-06 11:05:05 瀏覽:924
七七網源碼 發布:2024-05-06 10:27:36 瀏覽:295
shell輸入腳本 發布:2024-05-06 10:19:49 瀏覽:985
通達信自定義板塊在哪個文件夾 發布:2024-05-06 09:56:37 瀏覽:104
在linux搭建mqtt伺服器搭建 發布:2024-05-06 09:52:00 瀏覽:559
windowspython23 發布:2024-05-06 09:27:50 瀏覽:748