Time of Update: 2018-12-03
一個LeveListDrawable管理著一組交替的drawable資源。LeveListDrawable裡面的每一個drawable資源與一個最大數值結合起來,作為LevelListDrawable資源的一項。調用Drawable的setLevel()方法可以載入level-list或代碼中定義的某個drawable資源,判斷載入某項的方式:level-list中某項的android:maxLevel數值大於或者等於setLevel設定的數值,就會被載入。檔案位置:res/drawable/f
Time of Update: 2018-12-03
Android系統還提供了另一種XML解析方式可以使你更好的處理這種情況,就是Pull方式解析XML資料。Pull解析xml項目是一個開源的項目,只不過android系統將它集中進去了。官網:http://www.xmlpull.orgPull解析器和SAX解析器雖有區別但也有相似性。他們的區別為:SAX解析器的工作方式是自動將事件推入註冊的事件處理器進行處理,因此你不能控制事件的處理主動結束;而Pull解析器的工作方式為允許你的應用程式代碼主動從解析器中擷取事件,正因為是主動擷取事件,因此可以
Time of Update: 2018-12-03
public void pullCreateXml() throws IllegalArgumentException, IllegalStateException, IOException{//要儲存的資料Person person1=new Person(1, "Lucy", 15);Person person2=new Person(2, "Tim", 20);List<Person> persons=new ArrayList<Person>();persons.
Time of Update: 2018-12-03
在Android中一共提供了4種資料存放區方式,但是由於儲存的這些資料都是其應用程式私人的,所以如果需要在其他應用程式中使用這些資料,就要使用Android提供的Content Provider(資料共用)。官方文檔中有詳細的描述:http://developer.android.com/guide/topics/data/data-storage.htmlAndroid中4種資料存放區方式分別如下。1、Shared Preferences:用來儲存“Key-value
Time of Update: 2018-12-03
Drawable Resource一個Drawable資源是繪圖中的一個普通概念,可以再螢幕上繪製出來。可以通過APIs中的getDrawable(int)方法檢索出來,也可以在其他的XML資源中通過android:drawable和android:icon等屬性使用它。Android中有多種不同類型的drawable。Bitmap File:一個位元影像檔案(.png,.jpg,或.gif), 產生一個BitmapDrawable對象.Nine-Patch
Time of Update: 2018-12-03
Java提供了一套完整的IO流體系,用來對檔案進行操作。Android同樣支援以這種方式來訪問手機儲存空間上的檔案,包括內部儲存空間和外部儲存空間Android中可以在裝置本身的存放裝置或者外接的存放裝置中建立用於儲存資料的檔案。預設情況下,檔案是不能在不同的程式間共用的。當該應用程式卸載時,這些檔案將被刪除掉。二、File 資料內部儲存1、在應用程式的私人檔案夾(data/data/包名)下隱藏檔因為根據包名的標誌建立的檔案夾,所以稱為該應用程式的私人檔案夾。這樣的儲存有兩種方式:第一種方式
Time of Update: 2018-12-03
一個TransitionDrawable是一個特殊的Drawable對象,可以實現兩個drawable資源之間淡入淡出的效果。<transition>節點下的每個<item>代表一個drawable資源。只能有兩個<item>。先前轉換調用startTransition()。向後,調用 reverseTransition()。檔案位於:res/drawable/filename.xml檔案名稱作為資源ID編譯資源類型:指向
Time of Update: 2018-12-03
InsetDrawable 表示一個drawable嵌入到另外一個drawable內部,並且在內部留一些間距,這一點很像drawable的padding屬性,區別在於 padding表示drawable的內容與drawable本身的邊距,insetDrawable表示兩個drawable和容器之間的邊距。當控制項需要的背景比實際的邊框小的時候比較適合使用InsetDrawable。檔案位置:res/drawable/filename.xml檔案
Time of Update: 2018-12-03
一、建立LayerDrawable和使用一個LayerDrawable是一個可以管理一組drawable對象的drawable。在LayerDrawable的drawable資源按照列表的順序繪製,列表的最後一個drawable繪製在最上層。它所包含的一組drawable資源用多個<item>元素表示,一個<item>元素代表一個drawable資源。檔案位置:res/drawable/filename.xml檔案名稱最為資源ID編譯資料類型:指向LayerDrawabl
Time of Update: 2018-12-03
一個StateListDrawable就是一個在xml檔案中定義,根據該對象不同的狀態,用幾張不同的圖片來代表相同的圖形。比如,一個按鈕,有多種狀態,擷取焦點,失去焦點,點擊等等,使用StateListDrawable可以根據不同的狀態提供不同的背景。在XML檔案中描述這些狀態列表。在唯一的一個<selector>標籤下,使用<item>標籤來代表一個圖形。每個<item>標籤使用各種屬性來描述它所代表的狀態所需要的drawable資源。再次狀態發生改變的時候
Time of Update: 2018-12-03
看完了前面說的幾本書之後,對Linux Kernel和Android有一定的認識了,是不是心裡蠢蠢欲動,想小試牛刀自己編譯一把Android原始碼了呢?一直習慣使用Windows系統,而Android原始碼是不支援在Windows上編譯上,於是決定使用虛擬機器安裝Ubuntu,然後下載、編譯和安裝Android原始碼。 一. 環境準備。 1. 磁碟空間預留20G左右,記憶體3G,因為一邊要跑主機,一邊要跑虛擬機器,記憶體要求還是比較高的,這樣才會比較流暢。 2.
Time of Update: 2018-12-03
想要學習SurfaceView,必須瞭解SurfaceView、Surface、SurfaceHolder。一、Surface下面是Google提供的關於Surface的API的概述:Handle onto a raw buffer that is being managed by the screen
Time of Update: 2018-12-03
想要使用MediaPlayer播放音頻和視頻,首先必須瞭解MediaPlayer的狀態問題。下面是Google提供的MediaPlayer的狀態圖,基本上只要明白了,在MediaPlayer的狀態上。就不會出問題了。還有什麼不明白的,可以詳細的看看Google提供的API。要想用MediaPlayer所寫的的音頻播放程式健壯的話,不僅需要瞭解MediaPlayer的各種狀態,還必須對MediaPlayer的各個監聽事件和回調方法做出必要的設定。可以根據自己的需要,設定不同的監聽方法。下面是Cop
Time of Update: 2018-12-03
ClipDrawable 是對一個Drawable進行剪下操作,可以控制這個drawable的剪下地區,以及相相對於容器的對齊,android中的進度條就是使用一個ClipDrawable實現效果的,它根據level的屬性值,決定剪下地區的大小。 需要注意的是ClipDrawable是根據level的大小控製圖片剪下操作的,官方文檔的note中提到:The drawable is clipped completely and not visible when the level
Time of Update: 2018-12-03
從Drawable的繼承結構上看,還有幾個沒有介紹到。1、ColorDrawableColorDrawable使用很簡單,使用<Color>元素就可以定義一個ColorDrawable,然後再其他的地方使用。在color.xml檔案中定義:<?xml version="1.0" encoding="utf-8"?><color xmlns:android="http://schemas.android.com/apk/res/android"
Time of Update: 2018-12-03
Canvas的意思是畫布,表現在螢幕上就是一塊地區,我們可以再上面使用各種API繪製我們想要的東西。可以說,Canvas貫穿整個2D Graphics,android.graphics中的所有類,幾乎都於Canvas有直接或間接的聯絡。所以瞭解Canvas是學習2D Graphics的基礎。Android官方文檔對Canvas的簡介很好的介紹了Canvas的使用:The Canvas class holds the "draw" calls. To draw something, you
Time of Update: 2018-12-03
對另一個drawable資源,基於當前的level,進行旋轉的drawable。檔案位置:res/drawable/filename.xml檔案名稱即資源名編譯資料類型:指向 RotateDrawable的指標。資源引用:In Java: R.drawable.filenameIn XML: @[package:]drawable/filename文法:<?xml version="1.0" encoding="utf-8"?><rotate xmlns:android=
Time of Update: 2018-12-03
canvas 還提供裁剪的功能。 裁剪功能由Canvas提供的一系列的clip...方法 和quickReject方法來完成。 前面已經提到,真正提供可繪製地區的是Canvas內部的mutable bitmap。 Canvas更像是一個圖層,我們只能在這上面的圖層來繪製東西。1、首先介紹Region類Region,中文意思即地區的意思,它表示的是canvas圖層上的某一塊封閉的地區。/**構造方法*/ public Region() //建立一個空的地區 public
Time of Update: 2018-12-03
近年來,手機移動平台越來越火爆。開啟自己的QQ算了一下,線上好友共有31個,其中用手機上的有13個,手機使用者佔了42%;開啟新浪微博、天涯和貓撲等網站,各種終端裝置的發貼、回貼更是數不勝數。目前,手機平台如日中天的要數是iOS和Android了,尤其是iOS,Symbian已沒落,WP7在掙紮。iOS一如既往地走Apple特色的封閉道路,然而它的強大在於能夠建立一個完整的生態系統,喬布斯確實是天之驕子,沒有之一;相反,Android奉行開放政策。注意,Android是開放,不是開源,從And
Time of Update: 2018-12-03
對另一個drawable資源,基於當前的level,進行尺寸變換的drawable。檔案位置:res/drawable/filename.xml檔案名稱即資源名編譯資料類型:指向 ScaleDrawable的指標。資源引用:In Java: R.drawable.filenameIn XML: @[package:]drawable/filename文法:<?xml version="1.0" encoding="utf-8"?><scale xmlns:android=