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

正文內(nèi)容

基于android手機(jī)電子書閱讀器設(shè)計(jì)與實(shí)現(xiàn)(編輯修改稿)

2025-07-03 22:58 本頁面
 

【文章內(nèi)容簡(jiǎn)介】 used狀態(tài):在某些情況下,你的Activity是可見的,但沒有焦點(diǎn),在這時(shí)候,Actvity處于Paused狀態(tài)。例如,如果有一個(gè)透明或非全屏幕上的Activity在你的Actvity上面,你的Activity將。當(dāng)處于Paused狀態(tài)時(shí),該Actvity仍被認(rèn)為是Active的,但是它不接受用戶輸入事件。在極端情況下,OPhone Runtime將殺死Paused Activity,以進(jìn)一步回收資源。當(dāng)一個(gè)Actvity完全被遮住時(shí),它將進(jìn)入Stopped狀態(tài)。 Stopped狀態(tài):當(dāng)Activity是不可見的時(shí),Activity處于Stopped狀態(tài)。Activity將繼續(xù)保留在內(nèi)存中保持當(dāng)前的所有狀態(tài)和成員信息,假設(shè)系統(tǒng)別的地方需要內(nèi)存的話,這時(shí)它是被回收對(duì)象的主要候選。當(dāng)Activity處于Stopped狀態(tài)時(shí),一定要保存當(dāng)前數(shù)據(jù)和當(dāng)前的 UI狀態(tài),否則一旦Activity退出或關(guān)閉時(shí),當(dāng)前的數(shù)據(jù)和UI狀態(tài)就丟失了。Inactive狀態(tài):Activity被殺掉以后或者被啟動(dòng)以前,處于Inactive狀態(tài)。這時(shí)Activity已被移除從Activity堆棧中,需要重新啟動(dòng)才可以顯示和使用。 狀態(tài)過渡具有不確定性并且由OPhone Runtime完全管理。OPhone Runtime將首先殺掉處于Stopped狀態(tài)的Activity,在極端情況下,也會(huì)殺掉那些處于Paused狀態(tài)的Activity。為確保無縫的用戶體驗(yàn),這些狀態(tài)之間的過渡對(duì)用戶來說應(yīng)該做到透明的。不管Activity處于那種狀態(tài),最重要的是保留好UI狀態(tài)和用戶數(shù)據(jù),一旦Actvity被激活,用戶都能看到他想要的東西。關(guān)于Activity的生命周期如圖41所示:圖41 Activity生命周期Fig 41 The life of ActivityAcivity中的設(shè)計(jì)為窗口形式,在窗口下為視圖建立LinearLayout視圖,而LinearLayout結(jié)構(gòu)下,創(chuàng)建了RelativeLayout關(guān)系結(jié)構(gòu)與文本視圖TextView組成,而RelativeLayout結(jié)構(gòu)中包含2個(gè)UI組件分別是Button按鈕和ImageView圖像視圖,其結(jié)構(gòu)圖如圖42所示:圖42 Android Activity結(jié)構(gòu)示意圖Fig 42 Structure schematic of Activity ViewGroup結(jié)構(gòu)分析ViewGroup是個(gè)特殊的View。它的功能就是裝載和管理下一層的View對(duì)象或ViewGroup對(duì)象,也就說他是一個(gè)容納其它元素的的容器。ViewGroup是布局管理器(layout)及view容器的基類。 ViewGroup中。這個(gè)類定義了一個(gè)顯示對(duì)象的位置、大小等屬性,view通過LayoutParams中的這些屬性值來告訴父級(jí),它們將如何放置。ViewGroup是一個(gè)抽象類,所以真正充當(dāng)容器的是他的子類們。為了更直觀的分析ViewGroup的組成和結(jié)構(gòu),觀察圖43所示:圖43 ViewGroup結(jié)構(gòu)示意圖Fig 43 Structure schematic of ViewGroupViewGroup不僅僅可以包含View視圖,它同時(shí)可以嵌套ViewGroup,以樹形結(jié)構(gòu)不斷延伸,Activity是Android程序的顯示層,每一個(gè)顯示窗口都是一個(gè)Activity;可是Activity本身無法顯示在屏幕上,可以把它理解成是一個(gè)抽象層,一個(gè)殼子;就譬如一個(gè)JSP頁面,它本身并沒有顯示出來任何東西,負(fù)責(zé)顯示的是他生成的HTML標(biāo)簽。那么Android里誰才是真正顯示出來的部分?是View和ViewGroup,而ViewGroup其實(shí)也是View的子類。首先UI組件是按層次結(jié)構(gòu)來由外到內(nèi)的方式逐步展示的。要將一個(gè)屏幕元素層次樹綁定在一個(gè)屏幕上顯示,Activity會(huì)調(diào)用它的setContentView()方法并且傳入這個(gè)層次樹的根節(jié)點(diǎn)引用。當(dāng)Activity被激活并且獲得焦點(diǎn)時(shí),系統(tǒng)會(huì)通知activity并且請(qǐng)求根節(jié)點(diǎn)去計(jì)算并繪制樹,根節(jié)點(diǎn)就會(huì)請(qǐng)求它的子節(jié)點(diǎn)去繪制它們自己。每個(gè)樹上的ViewGroup節(jié)點(diǎn)會(huì)負(fù)責(zé)繪制它的子節(jié)點(diǎn)。ViewGroup會(huì)計(jì)算它的有效空間,布局所有的子顯示對(duì)象,并最終調(diào)用所有的子顯示對(duì)象的 Draw()方法來繪制顯示對(duì)象。各個(gè)子顯示對(duì)象可以向父對(duì)象請(qǐng)求它們?cè)诓季种械拇笮『臀恢?,但最終決定各個(gè)子顯示對(duì)象的大小和位置的是父對(duì)象。Android程序借助View和ViewGroup對(duì)象來構(gòu)建用戶界面。Android提供了比HTML多得多的,現(xiàn)成的用戶界面組件。5 系統(tǒng)詳細(xì)設(shè)計(jì) Loading頁詳細(xì)設(shè)計(jì)Loading頁面是軟件在開啟的時(shí)候第一個(gè)View視圖,所以絢麗的動(dòng)畫效果和精美的圖片是必不可少的,為了達(dá)到此效果,公司的美工下了不少的力氣,而Loading視圖分為幾個(gè)模塊來進(jìn)行處理,這里有2個(gè)TextView和一個(gè)ProgressBar以及一個(gè)Button按鈕。 關(guān)于ProgressBar的研究ProgressBar 控件有一個(gè)行程和一個(gè)當(dāng)前位置。行程代表該操作的整個(gè)持續(xù)時(shí)間。當(dāng)前位置則代表應(yīng)用程序在完成該操作過程時(shí)的進(jìn)度。Max 和 Min 屬性設(shè)置了行程的界限。Value 屬性則指明了在行程范圍內(nèi)的當(dāng)前位置。由于使用方塊來填充控件,因此所填充的數(shù)量只能是接近于 Value 屬性的當(dāng)前設(shè)置值?;诳丶拇笮。琕alue 屬性決定何時(shí)顯示下一個(gè)方塊。   ProgressBar 控件的 Height 屬性和 Width 屬性決定所填充控件的方塊的數(shù)量和大小。方塊數(shù)量越多,控件就越能精確地描述操作進(jìn)度。為了增加顯示方塊的數(shù)量,需要減少控件的 Height 或者增加其 Width。BorderStyle 屬性的設(shè)置值同樣影響方塊的數(shù)量和大小。為了適應(yīng)邊框要求,方塊的大小要更小一點(diǎn)。 可以用 ProgressBar 控件的 Align 屬性把它自動(dòng)定位在窗體的頂部或底部。當(dāng)一個(gè)應(yīng)用程序在后臺(tái)執(zhí)行時(shí),前臺(tái)界面不會(huì)產(chǎn)生變化,但因?yàn)?Android 各機(jī)型配置大不相同,有時(shí)執(zhí)行程序的過程中用戶不知道發(fā)生了什么事,但界面卻發(fā)生了變化。這時(shí)需要與用戶交互的進(jìn)度條用來提示用戶后臺(tái)執(zhí)行程序的進(jìn)度,這種做法是符合人性化的,進(jìn)度條充分的符合上面的需求。進(jìn)度條的詳解如下: (1)進(jìn)度條風(fēng)格 (2)進(jìn)度條主要屬性方法 (3)模擬程序運(yùn)行,使用進(jìn)度條 (4)進(jìn)度條分類 :長(zhǎng)形進(jìn)度條 (progressBarStyleHorizontal) 大圓形進(jìn)度條 (progressBarStyleLarge) 小圓形進(jìn)度條 (progressBarStyleSmall) 默認(rèn)風(fēng)格 (progressBarStyle) 關(guān)于TextView的研究關(guān)于TextView文本視圖,其實(shí)深入研究會(huì)發(fā)現(xiàn)TextView表面上看起來簡(jiǎn)單,實(shí)則不然,TextView會(huì)在很多地方出現(xiàn)問題,目前網(wǎng)絡(luò)上書籍里并沒有能解決這些問題的方法,這里我在畢設(shè)中簡(jiǎn)單描述下我在開發(fā)中所遇到的關(guān)于TextView出現(xiàn)的困難。首先對(duì)于TextView最多存放多少漢字這個(gè)問題,TextView并不像我們想象中的字體多大就會(huì)存放多少漢字,也許是當(dāng)初在開發(fā)Android系統(tǒng)的時(shí)候程序員沒有考慮到漢字會(huì)發(fā)生的情況,在Android系統(tǒng)的TextView中會(huì)發(fā)生在書寫漢字的時(shí)候出現(xiàn)字體的Height變形,為了避免之后測(cè)試設(shè)定的TextView大小超出最大值和便于比較,將手機(jī)的分辨率。通過WindowManager的getSystemService()獲得window的信息,().getWidth()和getHeight()方法獲得屏幕的大小width*height,并將其設(shè)定為Title以便于觀察。通過上面的方法分別獲得TextView的寬int text_ViewWidth和高int text_ViewHeight,在通過getPaddingLeft()等方法查詢內(nèi)邊框是否存在。若存在內(nèi)邊框paddingLeft,paddingRight,paddingButtom和paddingTop的值分別為多少。行間距沒有獲取的方法只能用setLineSpacing()方法設(shè)定其大小為int lineSpacing。通過getTextSize()獲得TextView中字體的大小wordSize并顯示。通過測(cè)試發(fā)現(xiàn)字的寬與字體大小一致,但是字體的高比所設(shè)定的大小略大,所以通過TextView得出與測(cè)試TextView的文字相同大小的高wordWidth和寬wordHeight,并顯示出來。通過計(jì)算給定TextView每橫行最多存放多少字max_HWord和每豎列最多存放多少字max_VWord,并相乘。max_HWord(行最多存放多少字)用TextView的寬(除去內(nèi)邊框)/wordWidth(單個(gè)字體的寬),由于有肯能存在小數(shù),所以進(jìn)行去尾取整。max_VWord(每豎列最多存放多少字)用TextView的寬(除去內(nèi)邊框)/(wordHeight(單個(gè)字體的寬)+ 行間距)并去尾取整,最后將 max_VWord和 max_HWord相乘獲得TextView最多存放多少漢字。由于調(diào)查時(shí)發(fā)現(xiàn),由于TextView的寬和高經(jīng)常除以字寬和高+行間距的時(shí)候有余數(shù),這里其實(shí)經(jīng)過測(cè)試發(fā)現(xiàn),由于閱讀的書籍中有可能存在標(biāo)點(diǎn)符號(hào)、英文字母,這些英文字母寬度width值分別不同,而高度值跟漢字字體大小固定的漢字的高相同,這個(gè)不清楚不去處理是否會(huì)造成錯(cuò)誤。 關(guān)于Button的研究在Android開發(fā)過程中,Button是常用的控件,用起來也很簡(jiǎn)單,你可以在界面xml描述文檔中定義,也可以在程序中創(chuàng)建后加入到界面中,其效果都是一樣的。不過最好是在xml文檔中定義,因?yàn)橐坏┙缑嬉淖兪窃?,直接修改一下xml就行了,不用修改Java程序,并且在xml中定義層次分明,一目了然。另一個(gè)是如果在程序中定義,還要將其加入到界面中,有的還要設(shè)置高度寬度,樣式之類的,會(huì)使程序變得臃腫,開發(fā)和維護(hù)都不方便。 專區(qū)BoutiquesActivity模塊這是我主要負(fù)責(zé)的Block模塊通過LinearLayout嵌套LinearLayout,內(nèi)層LinearLayout存放一個(gè)ImageView。 LinearLayout研究LinearLayout是線性布局控件,它包含的子控件將以橫向或豎向的方式排列,按照相對(duì)位置來排列所有的widgets或者其他的containers,超過邊界時(shí),某些控件將缺失或消失。因此一個(gè)垂直列表的每一行只會(huì)有一個(gè)widget或者是container,而不管他們有多寬,而一個(gè)水平列表將會(huì)只有一個(gè)行高(高度為最高子控件的高度加上邊框高度)。LinearLayout保持其所包含的widget或者是container之間的間隔以及互相對(duì)齊(相對(duì)一個(gè)控件的右對(duì)齊、中間對(duì)齊或者左對(duì)齊)。其中xml屬性有android:baselineAligned:是否允許用戶調(diào)整它內(nèi)容的基線。android:baselineAlignedChildIndex:當(dāng)一個(gè)線性布局與另一個(gè)布局是按基線對(duì)齊的一部分,它可以指定其內(nèi)容的基線對(duì)齊方式。android:gravity:指定如何在該對(duì)象中放置此對(duì)象的內(nèi)容(x/y坐標(biāo)值)。android:orientation:設(shè)置它內(nèi)容的對(duì)其方向(橫向/豎向)。LinearLayout還支持為其包含的widget或者是container指定填充權(quán)值。好處就是允許其包含的widget或者是container可以填充屏幕上的剩余空間。這也避免了在一個(gè)大屏幕中,一串widgets或者是containers擠成一堆的情況,而是允許他們放大填充空白。剩余的空間會(huì)按這些widgets或者是containers指定的權(quán)值比例分配屏幕。默認(rèn)的 weight值為0,表示按照widgets或者是containers實(shí)際大小來顯示,若高于0的值,則將Container剩余可用空間分割,分割大小具體取決于每一個(gè)widget或者是container的layout_weight及該權(quán)值在所有widgets或者是containers中的比例。例如,如果有三個(gè)文本框,其中兩個(gè)指定的權(quán)值為1,那么,這兩個(gè)文本框?qū)⒌缺壤胤糯?,并填滿剩余的空間,而第三個(gè)文本框不會(huì)放大,按實(shí)際大小來顯示。如果前兩個(gè)文本框的取值一個(gè)為2,一個(gè)為1,顯示第三個(gè)文本框后剩余的空間的2/3給權(quán)值為2的,1/3大小給權(quán)值為1的。也就是權(quán)值越大,重要度越大。如果LinearLayout包含子LinearLayout,子LinearLayout之間的權(quán)值越大的,重要度則越小。如果有LinearLayout A包含LinearLayout C,D,C的權(quán)值為2,D的權(quán)值為1,則屏幕的2/3空間分給權(quán)值為1的D,1/3分給權(quán)值為2的C。在LinearLayout嵌套的情況下,子LinearLayout必須要設(shè)置權(quán)值,否則默認(rèn)的情況是未設(shè)置權(quán)值的子LinearLayout占據(jù)整個(gè)屏幕。 關(guān)于ImageView的研究ImageView用來顯示任意圖像圖片,可以自己定義顯示尺寸,顯示顏色等等。android:adjustViewBounds是否保持寬高比。需要與maxWidth、MaxHeight一起使用,單獨(dú)使用沒有效果。android:cropToPadding是否截取指定區(qū)域用空白代替。單獨(dú)設(shè)置無效果,需要與scrollY一起使用android:maxHeight 定義View的最大高度,需要與AdjustViewBounds一起使用,單獨(dú)使用沒有效果。如果想設(shè)置圖片固定大小,又想保持圖片寬高比,需要如下設(shè)置:(1) 設(shè)置AdjustViewBounds為true;(2) 設(shè)置maxWidth、MaxHeight;(3) 設(shè)置設(shè)置layout_width和layout_height為wrap_content。其中的屬性分別表示android:maxWidth設(shè)置View的最大寬度
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1