當前位置:首頁 » 安卓系統 » android設計原則

android設計原則

發布時間: 2022-08-15 06:12:27

⑴ Android 架構設計的思想與原則是什麼

理解好Intent,就可以理解Android哲學("所有應用生來平等")的一部分。舉個簡單的例子,iOS裡面應用要集成SNS如facebook/twitter/sina weibo等,都需要應用自己實現(iOS5也只是集成twitter一家);Android上只需要廣播一個share內容的intent。從理解Intent如何工作開始,你就在慢慢理解Activity Manager, Package Manager, services這些Android的重要組件是如何工作的。

⑵ android自定義控制項,一般遵循什麼樣的原則

開發自定義控制項的步驟:
1、了解View的工作原理
2、 編寫繼承自View的子類
3、 為自定義View類增加屬性
4、 繪制控制項
5、 響應用戶消息
6 、自定義回調函數

一、View結構原理
Android系統的視圖結構的設計也採用了組合模式,即View作為所有圖形的基類,Viewgroup對View繼承擴展為視圖容器類。

View定義了繪圖的基本操作
基本操作由三個函數完成:measure()、layout()、draw(),其內部又分別包含了onMeasure()、onLayout()、onDraw()三個子方法。具體操作如下:
1、measure操作
measure操作主要用於計算視圖的大小,即視圖的寬度和長度。在view中定義為final類型,要求子類不能修改。measure()函數中又會調用下面的函數:
(1)onMeasure(),視圖大小的將在這里最終確定,也就是說measure只是對onMeasure的一個包裝,子類可以覆寫onMeasure()方法實現自己的計算視圖大小的方式,並通過setMeasuredDimension(width, height)保存計算結果。

2、layout操作
layout操作用於設置視圖在屏幕中顯示的位置。在view中定義為final類型,要求子類不能修改。layout()函數中有兩個基本操作:
(1)setFrame(l,t,r,b),l,t,r,b即子視圖在父視圖中的具體位置,該函數用於將這些參數保存起來;
(2)onLayout(),在View中這個函數什麼都不會做,提供該函數主要是為viewGroup類型布局子視圖用的;

3、draw操作
draw操作利用前兩部得到的參數,將視圖顯示在屏幕上,到這里也就完成了整個的視圖繪制工作。子類也不應該修改該方法,因為其內部定義了繪圖的基本操作:
(1)繪制背景;
(2)如果要視圖顯示漸變框,這里會做一些准備工作;
(3)繪制視圖本身,即調用onDraw()函數。在view中onDraw()是個空函數,也就是說具體的視圖都要覆寫該函數來實現自己的顯示(比如TextView在這里實現了繪制文字的過程)。而對於ViewGroup則不需要實現該函數,因為作為容器是「沒有內容「的,其包含了多個子view,而子View已經實現了自己的繪制方法,因此只需要告訴子view繪制自己就可以了,也就是下面的dispatchDraw()方法;
(4)繪制子視圖,即dispatchDraw()函數。在view中這是個空函數,具體的視圖不需要實現該方法,它是專門為容器類准備的,也就是容器類必須實現該方法;
(5)如果需要(應用程序調用了setVerticalFadingEdge或者setHorizontalFadingEdge),開始繪制漸變框;
(6)繪制滾動條;
從上面可以看出自定義View需要最少覆寫onMeasure()和onDraw()兩個方法。

二、View類的構造方法

創建自定義控制項的3種主要實現方式:
1)繼承已有的控制項來實現自定義控制項: 主要是當要實現的控制項和已有的控制項在很多方面比較類似, 通過對已有控制項的擴展來滿足要求。
2)通過繼承一個布局文件實現自定義控制項,一般來說做組合控制項時可以通過這個方式來實現。
注意此時不用onDraw方法,在構造廣告中通過inflater載入自定義控制項的布局文件,再addView(view),自定義控制項的圖形界面就載入進來了。
3)通過繼承view類來實現自定義控制項,使用GDI繪制出組件界面,一般無法通過上述兩種方式來實現時用該方式。

View(Context context)
Simple constructor to use when creating a view from code.
View(Context context, AttributeSet attrs)
Constructor that is called when inflating a view from XML.
View(Context context, AttributeSet attrs, int defStyle)
Perform inflation from XML and apply a class-specific base style.

三、自定義View增加屬性的兩種方法:
1)在View類中定義。通過構造函數中引入的AttributeSet 去查找XML布局的屬性名稱,然後找到它對應引用的資源ID去找值。
案例:實現一個帶文字的圖片(圖片、文字是onDraw方法重繪實現)

public class MyView extends View {

private String mtext;
private int msrc;

public MyView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
int resourceId = 0;

int textId = attrs.getAttributeResourceValue(null, "Text",0);
int srcId = attrs.getAttributeResourceValue(null, "Src", 0);

mtext = context.getResources().getText(textId).toString();

msrc = srcId;

}

@Override
protected void onDraw(Canvas canvas) {
// TODO Auto-generated method stub

Paint paint = new Paint();
paint.setColor(Color.RED);
InputStream is = getResources().openRawResource(msrc);

Bitmap mBitmap = BitmapFactory.decodeStream(is);

int bh = mBitmap.getHeight();
int bw = mBitmap.getWidth();

canvas.drawBitmap(mBitmap, 0,0, paint);

//canvas.drawCircle(40, 90, 15, paint);
canvas.drawText(mtext, bw/2, 30, paint);
}

}

布局文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >

<com.example.myimageview2.MyView
android:id="@+id/myView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
Text="@string/hello_world"
Src="@drawable/xh"/>

</LinearLayout>

屬性Text, Src在自定義View類的構造方法中讀取。

2)通過XML為View注冊屬性。與Android提供的標准屬性寫法一樣。
案例: 實現一個帶文字說明的ImageView (ImageView+TextView組合,文字說明,可在布局文件中設置位置)

public class MyImageView extends LinearLayout {

public MyImageView(Context context) {
super(context);
// TODO Auto-generated constructor stub
}

public MyImageView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
int resourceId = -1;
TypedArray typedArray = context.obtainStyledAttributes(attrs,
R.styleable.MyImageView);
ImageView iv = new ImageView(context);
TextView tv = new TextView(context);

int N = typedArray.getIndexCount();
for (int i = 0; i < N; i++) {
int attr = typedArray.getIndex(i);

switch (attr) {
case R.styleable.MyImageView_Oriental:
resourceId = typedArray.getInt(
R.styleable.MyImageView_Oriental, 0);
this.setOrientation(resourceId == 1 ? LinearLayout.HORIZONTAL
: LinearLayout.VERTICAL);
break;

case R.styleable.MyImageView_Text:
resourceId = typedArray.getResourceId(
R.styleable.MyImageView_Text, 0);
tv.setText(resourceId > 0 ? typedArray.getResources().getText(
resourceId) : typedArray
.getString(R.styleable.MyImageView_Text));
break;

case R.styleable.MyImageView_Src:
resourceId = typedArray.getResourceId(
R.styleable.MyImageView_Src, 0);
iv.setImageResource(resourceId > 0 ?resourceId:R.drawable.ic_launcher);

break;

}

}

addView(iv);
addView(tv);
typedArray.recycle();

}

}

attrs.xml進行屬性聲明, 文件放在values目錄下
<?xml version="1.0" encoding="utf-8"?>
<resources>

<declare-styleable name="MyImageView">
<attr name="Text" format="reference|string"></attr>
<attr name="Oriental" >
<enum name="Horizontal" value="1"></enum>
<enum name="Vertical" value="0"></enum>
</attr>
<attr name="Src" format="reference|integer"></attr>
</declare-styleable>

</resources>

MainActivity的布局文件:先定義命名空間 xmlns:uview="http://schemas.android.com/apk/res/com.example.myimageview2"
然後可以像使用系統的屬性一樣使用:uview:Oriental="Vertical"

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:uview="http://schemas.android.com/apk/res/com.example.myimageview2"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hello_world" />

<com.example.myimageview2.MyImageView
android:id="@+id/myImageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
uview:Text="這是一個圖片說明"
uview:Src="@drawable/tw"
uview:Oriental="Vertical">
</com.example.myimageview2.MyImageView>

</LinearLayout>

四、控制項繪制 onDraw()

五、

六、自定義View的方法
onFinishInflate() 回調方法,當應用從XML載入該組件並用它構建界面之後調用的方法
onMeasure() 檢測View組件及其子組件的大小
onLayout() 當該組件需要分配其子組件的位置、大小時
onSizeChange() 當該組件的大小被改變時
onDraw() 當組件將要繪制它的內容時
onKeyDown 當按下某個鍵盤時
onKeyUp 當松開某個鍵盤時
onTrackballEvent 當發生軌跡球事件時
onTouchEvent 當發生觸屏事件時
onWindowFocusChanged(boolean) 當該組件得到、失去焦點時
onAtrrachedToWindow() 當把該組件放入到某個窗口時
onDetachedFromWindow() 當把該組件從某個窗口上分離時觸發的方法
onWindowVisibilityChanged(int): 當包含該組件的窗口的可見性發生改變時觸發的方法

⑶ Android app應用開發設計有哪些原則

不論是ios還是android的應用開發,其實都遵循著一定的開發流程,只有如此才能使開發過程有章可循而不是一團亂。 你的app應用是開發給誰用的? 是寫給小孩玩的游戲,還是用來理財的記賬類應用,每個應用都有固定的適用人群,而這決定你應用的內容是什麼,也決定了要給使用者以什麼樣的用戶體驗。 互聯網是個神奇的大網,大數據開發和軟體定製也是一種模式,這里提供最詳細的報價,如果你真的想做,可以來這里,這個手機的開始數字是一八七中間的是三兒零最後的是一四二五零,按照順序組合起來就可以找到,我想說的是,除非你想做或者了解這方面的內容,如果只是湊熱鬧的話,就不要來了。 你的app應用是做什麼的? 一個app有明確的使用目的是必須的。如何來明確?一個辦法就是要去想清楚什麼能吸引用戶來使用你的app。 你的app能解決什麼問題? 一個app應該致力於解決好一個問題而不是想能處理很多好無相關的問題,因為那樣你就要考慮開發幾個不同的app。每個app都應該專註解決一類問題。 設計用戶界面。 有了明確的理念和構想,下面就是該設計用戶界面了,用戶界面是app使用者與你的app交互的地方,應該遵循簡潔美觀,便捷的原則,從app使用者的角度出發,帶給用戶良好的使用體驗。 定義交互方式。 用戶界面因為有了交互才變得有活起來。在app開發中,交互的啟用都是通過用戶操作的事件來觸發的,比如手指的點擊,滑動,捏合等操作。通過定義這些事件,我們可以精確地對用戶的操作來給出響應,或者打開新的界面,或者提供展現的內容在當前界面上。 部署用戶行為。 定義好交互方式後,接下來就要通過代碼來實現這些定義好的行為了。可以說用戶的所有操作都是通過我們實現的定義來得到響應的,如果沒有前面明確的定義,那麼會給用戶帶來困擾,這是一個好的app所不能出現的錯誤。 數據交互的部署。 有了設計好的用戶界面和交互方式,接下來就要考慮數據的存儲問題。 在界面與數據之間必須要定義明確的交互方式,盡管使用app的人是不直接和這些數據交互。一個好的數據模型是你app的堅實基礎,使你的app更有擴展性,更易於將來的修改 上面講解了APP開發的流程,下面來講解開發APP的費用,簡單來說就是這個APP需要多少人、做多長時間、人員的工資是多少。 對於APP外包開發的報價,一般取決於下面幾個因素: 1、APP支持平台: 常見的APP移動平台包括谷歌Android、蘋果iOS(iPhone/iPad),做的手機APP是針對其中某一個、還是兩個平台都需要,對應了不同的開發成本。 除了APP本身,很多APP還有網站版的管理後台,管理後台的開發成本也需要考慮在內。 2、開發人員工資 一般來說,外包項目報價的基礎是開發人員的工資,而工資又是和工作年限、經驗、水平等決定的。這里的開發人員包括產品經理、UI設計師、前端工程師、服務端工程師、iOS和Android客戶端工程師等,不同的外包項目需要的開發人員不同。 舉個例子,假設一個iOS開發工程師一月工資22000元(工資數值僅舉例),按照每月21.75個工作日來計算每天的開發費用,這里是每天(22000/21.75)=1000元,如果你考慮20%的利潤,則每天費用變為了1000x(1+20%)=1200元。致電一八六零零三一四起吳零 (註:現實中,開發人員的工資之外,還有社保等其他人力成本支出) 3、產品功能的復雜程度 產品功能的復雜程度決定了所需要的開發人員和時間,開發需要30人/天和100人/天,價格是不同的。 接前面的例子,如果一個項目需要一個iOS開發工程師30人/天,那麼按照1200元每天的價格,項目總費用就是(1200x30)=36000元。 4、外包團隊經驗和素質 如果是產品功能復雜的項目,外包團隊的素質對最終結果影響很大,而好的團隊則報價自然會更高一些。產品功能簡單的項目,另當別論。 5、外包團隊的所在地 同樣能力的外包團隊,在不同的城市也會導致開發成本的差異,比如在北京、深圳和上海的外包團隊成本自然高一些,因為當地開發人員薪資和其他支出相對更高。 6、客戶預算 如果產品需求很多,但是預算不夠,那也白搭,因此客戶應該根據預算了確定產品功能需求。 當然,一定會有甲乙雙方討價還價的過程,雙方合作共贏才是王道。

⑷ Android 架構設計的思想與原則是什麼

所有應用生而平等,也是為了不重復發明輪子,簡化軟體開發。
如果別的程序已經實現的功能,就不用重新實現,只需簡單的startActivity或者broadcastIntent就可以調用別的組件。

⑸ android用到哪些設計模式

1 Android設計模式系列-組合模式
2 Android設計模式—策略模式
3 Android設計模式系列-單例模式
4 Android設計模式系列--工廠方法模式
5 Android設計模式系列-適配器模式
6 Android設計模式系列--原型模式
7 Android設計模式系列--觀察者模式
8 Android設計模式系列--模板方法模式

⑹ Android架構設計的思想與原則是什麼

rlei分析了Android的設計哲學:
理解好Intent,就可以理解Android哲學(所有應用生來平等)的一部分。舉個簡單的例子,iOS裡面應用要集成SNS如facebook/twitter/sina weibo等,都需要應用自己實現(iOS5也只是集成twitter一家);Android上只需要廣播一個share內容的intent。從理解Intent如何工作開始,你就在慢慢理解Activity Manager, Package Manager, Services這些Android的重要組件是如何工作的。
另外Binder是Android架構里非常核心的一塊。Android基於Intent的消息傳遞和組件/應用解耦,下面的基礎都是Binder IPC。在這一點上,Android實際上是光榮的傳承了BeOS和Palm OS 6(悲催的OS6...)未能發揚光大的一部分。
MVC(Content Provider, Activity, Layout, Adapters)這個比較基礎,也不算Android特有的。
Content Provider對數據訪問的抽象也是比較有意思的一塊。理想情況下,content provider可以讓客戶端用URI以語義化的方式訪問數據(URI本身即表示數據層次結構和查詢條件),而下面資料庫表的結構可以任意變動,不影響客戶端代碼。當然實做的時候content provider還是會被各種復雜的where子句暴露出SQL的實現細節
至於Android的許可權管理,其實比較簡單,主要是利用現成的linux安全模型,進程之間相互隔離。API級別的許可權管理和JVM類似。
Billy Cui重點解析了許可權系統的設計:
Android的許可權系統是基於Linux,但又增加了很多自己的控制模塊。
總體上來說,其分為以下幾部分許可權系統:
1. userid : 繼承於linux,對於多個app,通過shareuid的方式可以使用同一個userid,主要承擔一些目錄訪問許可權之類的工作,比如私有目錄只能由同一uid應用訪問。
2. 安裝level:system level or app level,這個是根據應用的安裝位置決定的,在system/app下安裝的應用就是system level,在許可權訪問中會得到更多的許可權,比如靜默安裝應用的許可權等。
3. permission : 這個是最主要的許可權控制,一般開發者開發應用主要是接觸這個部分,在這部分中,會根據應用在AndroidManifest.xml中聲明的use-permission而在訪問相應api或資源時判斷其是否有訪問許可權,比如常用的android.permission.INTERNET等。
4. signature: 簽名,是Android許可權系統中的重要組成部分,對於系統簽名的應用,會有一些特殊的功能,而shareuid等特性也是需要同一簽名作為基礎。此外,permission在設置/自定義其許可權時也經常會使用到簽名,比如控制只有我自己的應用才可以訪問我自己定義的公開API。
除此以外,其實Android在uid的裡面設置了一些預定義有特殊功能的uid,比如system/media等,在配置其system level的services的時候會用到。
董兆輝則認為Android主要是基於組件搭配思想:
說到Android架構的設計思想和原則,按我的理解主要是組件搭配,即在用戶看來,所有的mole或者組件,都是可以重復利用和簡單組合的。想法是好的,不過有得必有失,或者說Android現在做的還不夠好,在性能方面是很低的,否則的話Android也不會推出補丁(NDK之類的,dalvik的不斷升級)。
我覺得所有Framework或者平台或者語言都想給應用開發者最方便使用的介面,最人性化的體驗,同時又要爭取最大的性能,兩者權衡折中吧。不過隨著硬體速度的飛速增長,性能的權重會變低。
范懷宇還談到了資源體系:
Android架設在Linux之上,因此,繼承了Linux可移植性、用戶管理機制、文件系統,等等。
Android的核心在Framework層,本質上,這是一個基於組件的應用開發系統,組件間通過消息(Intent)進行通信。一方面,Intent是通信信息的載體,另一方面,Intent也定義了Android組件的通信協議。
Android可以對組件所運行的進程做託管,在Android中,進程概念相當薄弱。依賴於進程託管,Android可以輕松支撐多任務多進程的應用模型。

⑺ android里有哪些設計模式

根據模式的目的可分為3類:
1.創建型模式:與對象的創建有關。
2.結構性模式:處理類與對象的組合。
3.行為性模式:對類或對象怎樣交互和怎樣 分配職責進行描述。
面向對象設計的2個基本原則:
1.針對介面編程,而不是針對實現編程。
2.優先使用對象組合,而不是類繼承。
面向對象設計的5個設計原則:
1.單一職責原則(SRP)
2.開放封閉原則(OCP)
3.Liskov替換原則(LSP)
4.依賴倒置原則(DIP)
5.介面隔離原則(ISP)

23種設計模式:
1.創建型模式:
(1).工廠方法模式
(2).抽象工廠模式
(3).創建者模式
(4).原型模式
(5).單例模式
2.結構型模式:
(6).適配器模式
(7).橋模式
(8).組合模式
(9).裝飾模式
(10).外觀模式
(11).享元模式
(12).代理模式
3.行為型模式
(13).解釋器模式
(14).模板方法模式
(15).職責鏈模式
(16).命令模式
(17).迭代器模式
(18).中介者模式
(19).備忘錄模式
(20).觀察者模式
(21).狀態模式
(22).策略模式
(23).訪問者模式

⑻ android架構設計需要注意什麼

android架構設計需要注意的問題如下:
1.了解不同版本的特性包括IDE的。
如:AsyncTask3.0之後和之前的區別、Android 5.0的新的API、Android 6.0 不能用HttpClient 、AS2.0的新特性 等等。
2.掌握熱門技術並了解其原理。
如:RxJava(響應式框架)、Retrofit(請求框架可以配合RxJava)、MVP(開發模式) hotfix(熱修復)等等。
3.掌握測試工具(因為懂得測試查看才能更好的針對性去解決、每個方法都編寫測試用例)。
如:查看布局層級、查看APP性能、查看APP安全 等等。
4.逆向工程(攻防兼備)。
5.有自己的開源項目(最好是MD風格的)。
6.熟悉gitflow更好的管理項目。
7.必須做筆記、可以寫博客、最好寫本書。
8.了解一些常用演算法(做動畫的時候還是有用的!)
9.關注最新技術、IT行業信息。
10.對於技術要有足夠的深度和熱情

⑼ Android 平台設計規范有哪些

1、尺寸以及解析度:

Android的界面尺寸比較流行的有:480*800、720*1280、1080*1920,我們在做設計圖的 時候建議是以 480*800的尺寸為標准;

2、界面基本組成元素:

界面基本組成元素包括:狀態欄+導航欄+主菜單欄+內容區域;以480*800的尺寸為標准下的 各個元素的高度(其實導航欄和菜單欄每一個應用都或許不一樣,android對於尺寸沒有太明確的 數據規范)如下:

3、字體:

Android 系統中,Droid Sans 是默認字體,與微軟雅黑很像;

4、操作欄:

1、」操作欄」對於 Android 應用來說是最重要的設計元素,它通常在應用運行的所有時間都呆 在屏幕頂部;

2、 操作欄的基本布局:

1向上+2 Spinner視圖控制+3 重要操作按鈕+4 更多操作:其中,向上按鈕,點擊後是去到 當前界面的上一個層級,非第一層級界面有此按鈕,第一層級界面則無向上按鈕;Spinner 是 用於展示內容的下拉菜單,其內容包括視圖的快速切換和顯示相關內容的完整信息;更多操作 (action overflow)是集合操作欄中不常用的和非重要操作的地方。

5、多面板布局:

多面板布局更多的是針對平板電腦,把手機端的目錄視圖和詳情視圖兩個層級的界面,甚至更 多的頁面,復合展示在同一個界面中,有效地利用平板電腦的屏幕空間,扁平化層級結構,簡 化導航。這點在iPad上已經運用得相當嫻熟了。

6、選擇:

Android4.0中的長按與Android2.3及更早期的版本有很大的不同。早期版本長按操作後,是 出現情境菜單的浮出層。在Android4.0中,長按後在操作欄的位置會覆蓋一個臨時的情境操 作欄,不再彈出情境菜單浮出層。在臨時情境操作欄的環境下,當前界面的內容項允許被單個 處理,也允許被批量處理。

7、返回和向上:

返回按鍵用在手機全局的虛擬導航欄中,基於用戶最近查看的界面歷史,採用時間倒序的方式, 連接界面間的關系。向上按鈕用在操作欄的左側,基於層級結構,點擊後是去到當前界面的上一 個層級,若當前界面已經是最高一級,則沒有向上按鈕。

8、主題樣式:

推出三套默認主題:Holo淺色主題、Holo深色主題、Holo淺色底+深色操作欄主題。主推app在 這三套默認主題的基礎上做設計,以加快app研發效率,但只是建議使用,並沒有完全強制。

9、觸摸與反饋:

用戶觸摸應用中的可操作區域,應當在視覺上有響應,微小的反饋會給用戶帶來很好地效果;

10、按鈕:

1、按鈕的3種表現形式如下圖:

2、對於僅包括圖標的按鈕,不需要使用背景色;

11、滑塊:

滑塊的幾種表現形式如下圖:

12、進度條:

如果某個操作需要花費很長的時間,就需要用進度條的指示和旋轉圈的形式來表示:

1、如果你可以知道當前任務完成的比例,那麼使用進度條,讓用戶了解大約還需要多久才能完成;

2、當使用旋轉圓圈時,不要配以文字標簽。旋轉的圓圈已經表明了正在進行後台操作。

13、開關:

用戶通過開關作出選擇,包括3種形式:復選框+單選按鈕+開關;

1、復選框:用戶可以在一個集合中作出多個選擇:

2、單選按鈕:單選按鈕允許用戶在一個集合中做一次選擇;

3、開關:開關控制單個選項的狀態;

14、對話框:

應用通過對話框讓用戶作出決定或者填寫一些信息,

1、對話框的左邊一般情況下是取消按鈕,右邊是確定按鈕;

⑽ 如何讓動效符合iOS和Android設計原則

基於原則:
一、准確展示:視頻Demo
二、操作體驗:交互原型
基於這兩點,第一個選擇是Flash。
由於Apple的原因,Flash如今的境況可算是江河日下。但作為一個動效原型工具,它卻有一些獨特的優勢。
優勢1:可以直接導入AE生成的序列幀素材。
優勢2:可以導出.apk或.ipa的安裝包,共享給任何有手機的人。
三、協助開發:參數文檔
根據實現原理,把對應的參數精確的寫出來,這就是參數文檔。對於動效來說,基本參數無非這三類:
1、動畫的起始時間、持續時間(ration\ offset)
2、變化的屬性(rotation\ position\ scale\ alpha)
3、運動速率(interpolator)
總結:
簡單的說,要想准確傳達設計可以分三步。
第一步:要快速可視化。
第二步:最大限度的還原使用場景。
第三步:把設計參數化,盡可能減少讓工程師憑感覺開發的情況。

熱點內容
共享雲源碼 發布:2024-09-08 10:01:10 瀏覽:395
ios應用上傳 發布:2024-09-08 09:39:41 瀏覽:439
ios儲存密碼哪裡看 發布:2024-09-08 09:30:02 瀏覽:873
opensslcmake編譯 發布:2024-09-08 09:08:48 瀏覽:653
linux下ntp伺服器搭建 發布:2024-09-08 08:26:46 瀏覽:744
db2新建資料庫 發布:2024-09-08 08:10:19 瀏覽:173
頻率計源碼 發布:2024-09-08 07:40:26 瀏覽:780
奧迪a6哪個配置帶後排加熱 發布:2024-09-08 07:06:32 瀏覽:101
linux修改apache埠 發布:2024-09-08 07:05:49 瀏覽:209
有多少個不同的密碼子 發布:2024-09-08 07:00:46 瀏覽:566