freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于安卓的繪圖軟件開發(fā)與設(shè)計論文-文庫吧在線文庫

2024-12-22 04:47上一頁面

下一頁面
  

【正文】 ivity設(shè)計 39 本章小結(jié) 40第6章 Android底層組件開發(fā)方法 41 JNI機(jī)制 41 JNI簡介 41 JNI的使用 42 Android NDK簡介 42 Android底層組件開發(fā)步驟 43 本章小結(jié) 44第7章 基于FFMPEG庫的繪畫過程錄制實現(xiàn) 45 FFmpeg簡介 45 繪圖過程錄制需求分析 47 FFmpeg Android平臺移植 47 編寫FFmpeg封裝層C代碼 51 FFmpeg常用數(shù)據(jù)結(jié)構(gòu) 51 底層編碼流程 51 編寫Android應(yīng)用層代碼 60 完整錄制繪畫過程流程 63 繪畫過程錄制功能效果分析 65 本章小結(jié) 66第8章 結(jié)束語 67 論文工作總結(jié) 67 問題與展望 67參考文獻(xiàn) 69圖目錄圖 Android系統(tǒng)架構(gòu)圖 3圖 Acitvity棧結(jié)構(gòu) 7圖 Activity的四種狀態(tài)的變換關(guān)系圖 8圖 Activity生命周期 9圖 MyPaint常見的一些筆刷效果 11圖 MyPaintFixedTiledSurface組成結(jié)構(gòu) 12圖 MyPaintFixedTiledSurface數(shù)據(jù)抽象形式 13圖 MyPaintBrush結(jié)構(gòu)圖 15圖 筆觸圖 16圖 筆畫放大圖 16圖 hardness與opaque關(guān)系圖 17圖 筆觸透明度在不同hardness和d的分布 17圖 噴槍效果筆刷 18圖 橢圓形筆觸 18圖 橢圓形筆觸的繪畫效果 19圖 筆觸進(jìn)行線性插值 21圖 基于tile筆觸分割 22圖 Normal_and_Eraser混合算法 24圖 Surface結(jié)構(gòu)圖 26圖 Android版本與MyPaint版本的筆觸對比圖 29圖 鉛筆效果對比 32圖 帶透明度筆刷效果 32圖 涂抹效果筆刷對比 33圖 繪圖軟件功能模塊圖 34圖 筆刷選擇模塊實現(xiàn)效果圖 37圖 顏色選取模塊圖 38圖 筆刷屬性條件模塊圖 38圖 繪圖軟件界面 40圖 FFmpeg編譯調(diào)用關(guān)系 46圖 直接編碼寫入文件流程 53圖 編碼生成通用視頻格式文件流程 55圖 完整實現(xiàn)底層錄制流程 58圖 Android端調(diào)用編碼接口邏輯 62圖 繪畫錄制開始流程 63圖 編碼一幀圖像流程 64圖 結(jié)束流程 64浙江大學(xué)碩士學(xué)位論文 第1章 Error! No text of specified style in document.第1章 緒論 課題背景及意義 課題背景2007年11月,Google和84家硬件開發(fā)商、軟件開發(fā)商以及電信運營商成立開放手持聯(lián)盟來共同開發(fā)和改良Android系統(tǒng),隨后Google以Apache的免費開源許可的授權(quán)方式發(fā)布了Android源碼,并更新至今[1]。本文將實現(xiàn)一款基于Android平臺的繪圖軟件的開發(fā),方便人們隨時隨地使用身邊的移動設(shè)備進(jìn)行創(chuàng)作。由于Android是一款開源平臺,開發(fā)文檔豐富,很適合開發(fā)學(xué)習(xí)。 本章小結(jié)本章主要介紹了Android繪圖軟件的研究背景和研究意義,并介紹了本論文的主要的工作內(nèi)容。c) SQLite:輕量級的數(shù)據(jù)庫,其特點在于輕量性的設(shè)計結(jié)構(gòu),適合在手機(jī)上使用、占用資源非常少,運行高效可靠,可移植性好。第二部分:Android 運行時。 隱藏在應(yīng)用后面的是一系列的服務(wù)和系統(tǒng)[5],其中包括:a) Activity Manager:管理著Activity的生命周期以及維護(hù)這Activity的棧結(jié)構(gòu)。應(yīng)用層是Android應(yīng)用程序的集合,Android平臺的電子設(shè)備,包括Android手機(jī)、Android平板、Android MPAndroid GPS等一系列電子產(chǎn)品的火熱,很大程度上歸功于大量豐富方便的Android軟件[7]。 ActivityActivity是Android程序中最基本的組件,他是為用戶操作而展示的可視化用戶界面,是Android程序的表現(xiàn)層,顯示可視化的用戶界面,并接收與用戶交互所產(chǎn)生的交互事件。:圖 Acitvity棧結(jié)構(gòu) Activity生命狀態(tài) Activity作為Android應(yīng)用程序最重要的一部分,他主要有4種狀態(tài),分別如下:a) 活動狀態(tài):一個新的Activity啟動后,該Activity就會被壓入棧中,他呈現(xiàn)在屏幕的最前端,處于棧頂位置,此時他可以直接和用戶進(jìn)行交互。圖 Activity的四種狀態(tài)的變換關(guān)系圖 Activity生命周期 Android平臺是個多任務(wù)操作系統(tǒng),他能夠保證在當(dāng)前任務(wù)未完成時和隨時切換到其他應(yīng)用程序。e) onResume()方法:當(dāng)Activity由于暫停狀態(tài)恢復(fù)為活動狀態(tài)時調(diào)用。c) 可以在不同應(yīng)用中進(jìn)行通信。MyPaint筆刷引擎的高性能和出色的繪畫效果,其引擎已被很多其他繪圖軟件采用,如PostworkShop,Pixelmator等。在處理畫布數(shù)據(jù)時,都是以tile為最小處理單元。 draw_dab主要負(fù)責(zé)單個筆觸在畫布中的渲染。3. dabs_per_basic_radius、dabs_per_actual_radius、dabs_per_second:這三個參數(shù)決定一個筆畫中單個筆觸的密度。states保存的狀態(tài)包括:筆的壓力、筆觸的半徑、筆觸的位置、筆觸的顏色、筆觸的旋轉(zhuǎn)角度和筆觸的寬高比等。3. hardness表示筆觸的透明度淡出程度和離筆觸中心點距離的關(guān)系。計算橢圓形筆觸的透明度比正圓形的要復(fù)雜點,不過原理是一樣的。 pixel_opacity = opa * opaque。c) pressure表示用戶繪制到畫布時的筆刷的壓力。3. void update_states_and_setting_values (MyPaintBrush *self, float step_dx, float step_dy, float step_dpressure, float step_declination, float step_ascension, float step_dtime)該方法主要用于根據(jù)外部用戶輸入?yún)?shù)更新筆刷內(nèi)部的一些參數(shù),使其應(yīng)用到每個筆觸中去。6. void get_color (MyPaintSurface *surface, float x, float y, float radius, float * color_r, float * color_g, float * color_b, float * color_a)該方法有兩個作用,一個是將draw_dab方法中保存筆觸參數(shù)的OperationQueue中的參數(shù)依次彈出,并將該筆觸繪制到畫布中。:圖 基于tile筆觸分割 根據(jù)上圖在draw_dab時,MyPaint將單個筆觸按照tile的大小進(jìn)行分割,并將單個筆觸所包含的tile的位置作為鍵值和筆觸的渲染所需參數(shù)作為值壓入名為OperationQueue的map中,在需要渲染該筆觸的時候?qū)⑵鋸膍ap中彈出進(jìn)行其他操作。在MyPaint中主要含有兩種Blend模式,一種名為Normal,用于普通筆刷;另一種名為Normal_and_Eraser模式,用于有涂抹功能的筆刷,涂抹功能的筆刷可以將畫布區(qū)域的顏色和筆刷的顏色進(jìn)行混合,可以模擬出手在畫布涂抹的效果。 本章小結(jié) 本章主要介紹了MyPaint筆刷引擎的工作原理,分析出一個筆畫的繪制過程,其實是線性的連續(xù)繪制一系列筆觸的過程,中間插入的筆觸的不同形態(tài)和位置會決定最終的筆刷效果。 MyPaintFixedTiledSurface的移植在MyPaint中MyPaintFixedTiledSurface主要用于維護(hù)當(dāng)前畫布中的數(shù)據(jù),和如何繪制一個筆觸,且使用了基于tile繪制筆觸的機(jī)制。其函數(shù)原型為:public boolean onTouchEvent(MotionEvent event)當(dāng)用戶手指觸摸到屏幕上該View區(qū)域時,該方法會被調(diào)用,我們可以從回調(diào)函數(shù)的參數(shù)event的getAction()方法中中得到當(dāng)前觸摸事件的一些狀態(tài):a) ()。接下來將介紹如何實現(xiàn)MyPaintFixedTiledSurface的功能。6. draw_dab()方法用于如何渲染出一個MyPaint中筆觸效果,以及將其繪制到bitmap中去。但是由于RadialGradient只能創(chuàng)建出線性漸變,而不能創(chuàng)建出相應(yīng)的曲線漸變,筆觸的透明度和離中心距離d的相對關(guān)系并不是線性的,所以我們需要采樣出多個線性漸變來替代原生筆觸的效果。 (true)。Canvas tmpCanvas = new Canvas(tmpBitmap)。 ()。 MyPaintBrush類的改寫在MyPaint中MyPaintBrush的作用是解析json格式的筆刷文件中的參數(shù),和根據(jù)用戶的輸入去實時更新筆刷的參數(shù)。在本文中,將MyPaint的構(gòu)造函數(shù)設(shè)成私有,創(chuàng)建靜態(tài)方法getBrush()來獲取當(dāng)前筆刷的實例。在本文中,我們將預(yù)設(shè)的一些json格式的筆刷文件保存在assets文件夾下,在需要調(diào)用該筆刷時,把相應(yīng)的筆刷文件讀入內(nèi)存,進(jìn)行json格式的解析,解析出來的結(jié)果保存到相應(yīng)的數(shù)組中去。在MyPaint中筆刷其中一個參數(shù)定義如下:opaque: { base_value: , inputs: { pressure: [ [ , ], [ , ], [ , ], [ , ] ] } }, 上式中“opaque”為一個鍵,它的值為一個對象。由實現(xiàn)結(jié)果可以看出,對于hardness較高的筆刷可以很好的復(fù)制出MyPaint的效果,但對于hardness較低的筆刷會顯得筆觸的過度不是很自然。: 圖 繪圖軟件功能模塊圖,下文將主要進(jìn)行各個模塊的設(shè)計和實現(xiàn)。如果搭建兩行兩列的結(jié)構(gòu),通常的方式是先垂直排列兩個元素,每一個元素里再包含一個LinearLayout進(jìn)行水平排列。(3) 絕對布局 絕對布局(AbsoluteLayout)是絕對位置布局。所以它的子元素都是橫向排列,并且寬高一致的。 首先Android的selector是在drawable文件夾下創(chuàng)建的xml格式文件,將筆刷普通狀態(tài)的背景圖片和按下狀態(tài)的背景圖片放入res/drawable目錄下,接著編寫selector文件,根據(jù)自己需要的狀態(tài)來使用相應(yīng)的圖片。使用該顏色數(shù)組創(chuàng)建SweepGradient,并將SweepGradient 設(shè)置到Paint中,在繪制該圖形時使用該Paint即可達(dá)到所需效果。 筆刷屬性調(diào)節(jié)模塊設(shè)計筆刷屬性調(diào)節(jié)模塊是由兩個拖動條構(gòu)成,一個用于改變筆刷大小,一個擁有改變筆刷透明度。:圖 筆刷屬性條件模塊圖 繪圖Activity設(shè)計各個模塊設(shè)計完畢之后,我們需要創(chuàng)建主Activity來呈現(xiàn)我們的各個模塊。2. 由于筆刷的大小和透明度有限制我們需要設(shè)置Slider的最大值和最小值接口,方便外部調(diào)用。4. 重載View的onTouchEvent方法,分析用戶在取色環(huán)上觸摸的位置和角度,當(dāng)用戶觸摸到中心實心圓時,表示選中該顏色,并將顏色設(shè)置給當(dāng)前的筆刷。這樣我們的筆刷選擇器就可以實現(xiàn)了,:圖 筆刷選擇模塊實現(xiàn)效果圖 顏色選取模塊設(shè)計在繪圖軟件中,我們有需要更換筆刷的顏色的需求,本節(jié)主要介紹顏色選取模塊的設(shè)計。 在筆刷選擇控件中,我們使用線性布局來布局我們的筆刷,每個筆刷成線性排列。在實際開發(fā)中,通常不建議采用此布局格式,因為他的界面布局過于死板,不能適應(yīng)多種不同大小、分辨率的屏幕。例如android:layout_below, android:layout_above等。由于Android設(shè)備的差異性很大,設(shè)備的屏幕大小、分辨率都有差異,為讓編寫的控件可以適配不同的設(shè)備,我們需要根據(jù)控件的作用使用合適的布局方式。33浙江大學(xué)碩士學(xué)位論文 第5章Error! No text of specified style in document.第5章 繪圖軟件應(yīng)用界面開發(fā)設(shè)計與實現(xiàn)上一章討論了MyPaint引擎的改寫,本章將研究Android應(yīng)用層的開發(fā),并實現(xiàn)繪圖軟件的交互界面。 實現(xiàn)結(jié)果分析對比在進(jìn)行MyPaint筆刷引擎Android版本移植后,可以很大程度上還原出原始版本的筆刷效果,但是由于筆觸渲染沒有使用多線程技術(shù)和使用Android原生API進(jìn)行繪制,繪圖性能不如原始那么迅速。3. 由于解析Json格式需要String格式信息,需要將Inp
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1