編輯:關於Android編程
先看段關於android中動畫配置文件的偽代碼:
<?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <alpha /> <rotate /> <scale/> <translate/> </set> <?xml version="1.0" encoding="utf-8"?> <set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"> <alpha /> <rotate /> <scale/> <translate/> </set>
現在來慢慢理清楚:
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android
申明xml的命名空間,xmlns(xml namespace的縮寫),而冒號後面是給這個引用起的別名schemas是xml約束文件,規定了xml中有哪些元素(標簽),元素有哪些屬性以及各元素的關系,當申明了命名空間和約束文件後,就可以在改xml文檔中引用資源,存放在apk/res/android下的資源都可以訪問,比如在寫<rotate/>中的屬性時,用"android:"這樣來引用的,當然也可以自己定義自己的資源文件(比如test),就可以用"test:"這樣來引用。
android:interpolator="@android:anim/decelerate_interpolator" android:interpolator="@android:anim/decelerate_interpolator"
首先明白interpolator是定義一個動畫的變化率,這使得基本的動畫效果(scale、alpha、translate、rotate)得以加速、減速以及重復等等,用通俗的話來講就是動畫的進度使用Interpolator來控制,控制效果有勻速、正加速、負加速、無規則變速等等,Interpolator接口只有一個抽象方法getInterpolation(float input),由此SDK中擴展了另外幾個類。
常用Interpolator類:
AccelerateInterpolator:動畫從開始到結束,變化率是一個加速的過程。
DecelerateInterpolator:動畫從開始到結束,變化率是一個減速的過程。
AccelerateDecelerateInterpolator:動畫從開始到結束,變化率是先加速後減速的過程。
androidSDK中動畫分為兩種,
一種是Tween Animation(漸變動畫):通過對場景裡的對象不斷地做圖像變換處理,如平移、縮放、旋轉等。
一種是Frame Animation(幀動畫):順序播放實現做好的圖像。
android中的四種動畫
四種動畫是android提供的基本動畫類型,在配置文件中,他們都可以放在<set></set>標簽中,那麼怎樣建立一個動畫效果呢。看下面的xml動畫配置文件:
第一步:在res目錄下建立一個名字為anim的文件夾,並且在這個文件夾下建立一個新的xml文件,文件名字自擬。
第二步:添加命名空間,即寫set標簽,並且指定動畫的控制器(可以不寫)。
第三步:開始制定和設置動畫類型及動畫初值。
請注意當有rotate標簽和translate標簽一起使用時,請將rotate標簽放在translate之前。
各個標簽的屬性含義
set標簽屬性的含義:
android:shareInterpolator—— 是否共享插入器,共享時,四個子節點都用一個插入器
android:interpolator ——指定一個動畫的插入器,使用系統資源
android:fillEnabled——當設置為true時,fillAfter和fillBefroe將會都為true,此時會忽略fillBefore和fillAfter兩種屬性
android:fillAfter——該動畫轉化是否在動畫結束後被應用boolean
android:fillBefore——該動畫轉化是否在動畫開始前被應用boolean
android:repeatMode—— 重復模式restart 或者 reverse
android:repeatCount ——重復次數integer
android:duration ——動畫持續時間integer
android:startOffset—— 動畫時間間隔long
android:zAdjustment——定義動畫zorder的變換normal 或者 top 或者 bottom
scale標簽屬性的含義:
android:interpolator——同set屬性
android:fromXScale——動畫開始時,x坐標上的延伸尺寸(float 0.0表示收縮到最小,1.0表示無收縮)
android:toXScale——同理
android:fromYScale——同理
android:toYScale——同理
android:duration——動畫持續的時間(int 單位毫秒)
android:pivotX——動畫的開始時相對於物件的x位置(0%~100%)
android:pivotY——同理
android:fillEnabled ——同set屬性
android:fillBefore——同set屬性
android:fillBefore——同set屬性
android:fillAfter——同set屬性
android:startOffset——同set屬性
android:repeatCount——同set屬性
android:repeatMode——同set屬性
rotate標簽屬性的含義:
android:fromDegrees—— 動畫開始時的角度(有正負號之分)
android:toDegrees——動畫結束時的角度(有正負號之分)
android:pivotX——可以理解為旋轉的中心(0%~100%)
android:pivotY——同理
android:duration——動畫持續的時間(int 單位毫秒)
alpha標簽屬性的含義:
android:toAlpha——動畫結束時的透明度(float 0表示完全透明 1表示完全不透明)
android:duration——動畫持續的時間(int 單位毫秒)
android:fromAlpha——動畫開始時的透明度(float 0表示完全透明 1表示完全不透明)
translate標簽屬性的含義:
android:fromXDelta——動畫開始時,X坐標上的位置integer 默認以自己為參照物
android:toXDelta——動畫結束時,X坐標上的位置integer 默認以自己為參照物
android:fromYDelta——動畫開始時,Y坐標上的位置integer 默認以自己為參照物
android:toYDelta——動畫結束時,Y坐標上的位置integer 默認以自己為參照物
當然,scale,rotate,alpha,translate中的屬性不止這些,還有些和set標簽一樣,就沒有重復寫。到這裡android動畫最簡單的知識就完了。接下來還會繼續學習,繼續總結。
導語首先,看一下效果可能各位在別處看到過類似的東西,我在微信的文章末尾看到有個玩意,感覺有意思,就用代碼實現一下。這篇文章主要把握寫代碼的思路展示一下。看到上圖,我想各位
我手機的關於手機界面:說明:其中手機型號、Android版本、軟件版本通過系統Build類得到,處理器信息、內核版本通過讀取系統文件得到,基帶版本信息通過反射得到。&nb
接觸了這麼久的View,總不能一直停留在View裡,現在開始呢,就要學習一個新的知識點:SurfaceView,實際上SurfaceView與View的原理都差不多,只是
Android存儲系統如何優化?答案是我也不知道…那為什麼會想到要寫這篇文章哪?主要是因為有天晚上和以前一個同事討論到Android手機存儲系統的優化問題,