最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

動畫與多媒體

2021-07-07 16:19 作者:獨(dú)行D暗靈  | 我要投稿

Android中的繪圖工具類

  • Android中常見的三個繪圖類∶

    • Paint(畫筆)

    • Canvas(畫布)

    • Path(路徑)

  • Paint即畫筆,在繪圖過程中起到了極其重要的作用

  • 畫筆主要保存了顏色,樣式等繪制信息,指定了如何繪制文本和圖形畫筆對象有很多設(shè)置方法,大體上可以分為兩類:一類與圖形繪制相關(guān),一類與文本繪制相關(guān)


  • Canvas的構(gòu)造方法

    • Canvas():創(chuàng)建一個空的畫布,可以使用setBitmap()方法來設(shè)置繪制具體的畫布。

    • Canvas(Bitmap bitmap): 以bitmap對象創(chuàng)建一個畫布,將內(nèi)容都繪制在bitmap上,因此bitmap不得為null。


  • Path類

    • addArc(RectF oval, float startAngle, float sweepAngle ∶為路徑添加一個多邊形

    • addCircle(float x, float y, float radius, Path.Direction dir):給path添加圓圈

    • addOval(RectF oval, Path.Direction dir):添加橢圓形

    • addArc(RectF oval, float startAngle, float sweepAngle :為路徑添加一個多邊形

    • addCircle(float x, float y, float radius, Path.Direction dir)∶給path添加圓圈

    • addOva(RectF oval, Path.Direction dir):添加橢圓形

    • addRect(RectF rect, Path.Direction dir):添加一個區(qū)域

    • addRoundRect(RectF rect, float[] radii, Path.Direction dir):添加一個圓角區(qū)域

    • isEmpty()∶判斷路徑是否為空

    • transform(Matrix matrix):應(yīng)用矩陣變換

    • transform(Matrix matrix, Path dst):應(yīng)用矩陣變換并將結(jié)果放到新的路徑中,即第二個參數(shù)。

    • 用于描點(diǎn)、連線。在創(chuàng)建好Path路徑后,可以調(diào)用Canvas的drawPath(path,paint)將圖形繪制出來。

    • 常用方法︰


Android中的動畫

  • Android中的動畫常見的主要有三種:

    • 逐幀動畫(Frame)

    • 補(bǔ)間動畫(Tween)

    • 屬性動畫(Property)

  • 幀動畫概念以及用法︰

    • 通過AnimationDrawable類實(shí)現(xiàn),代碼中調(diào)用start()以及stop)開始或停止播放動畫

    • 在Java代碼中創(chuàng)建逐幀動畫,通過創(chuàng)建AnimationDrawable對象,然后調(diào)用相關(guān)方法實(shí)現(xiàn)

    • 幀動畫是簡單的由N張靜態(tài)圖片收集起來,然后通過控制依次顯示這些圖片,眼“視覺殘留”的原因,會讓人造成動畫的“錯覺”,類似放電影的原理

    • Android中實(shí)現(xiàn)幀動畫的方式

  • Android中使用幀動畫的步驟︰

    1. 編寫動畫文件(先在res下創(chuàng)建一個anim目錄,編寫動畫文件)

    2. 在代碼中獲取AnimationDrawable幀動畫實(shí)例

    3. 調(diào)用該實(shí)例的start()方法,播放動畫

    4. 調(diào)用該實(shí)例的stop()方法,停止動畫

  • 補(bǔ)間動畫的概念

    • 與幀動畫不同,幀動畫是通過連續(xù)播放圖片來模擬動畫效果,而補(bǔ)間動畫開發(fā)者只需指定動畫開始,以及動畫結(jié)束"關(guān)鍵幀”,而動畫變化的"中間幀"則由系統(tǒng)計算并補(bǔ)齊

  • 補(bǔ)間動畫的分類

    • AlphaAnimation :透明度漸變效果,創(chuàng)建時許指定開始以及結(jié)束透明度,還有動畫的持續(xù)時間,透明度的變化范圍(O,1),0是完全透明,1是完全不透明;對應(yīng)<alpha/>標(biāo)簽!

    • ScaleAnimation:縮放漸變效果,創(chuàng)建時需指定開始以及結(jié)束的縮放比,以及縮放參考點(diǎn),還有動畫的持續(xù)時間;對應(yīng)<scale/>標(biāo)簽!

    • TranslateAnimation:位移漸變效果,創(chuàng)建時指定起始以及結(jié)束位置,并指定動畫的持續(xù)時間即可;對應(yīng)<translate/>標(biāo)簽!

    • RotateAnimation :旋轉(zhuǎn)漸變效果,創(chuàng)建時指定動畫起始以及結(jié)束的旋轉(zhuǎn)角度,以及動畫持續(xù)時間和旋轉(zhuǎn)的軸心﹔對應(yīng)<rotate/>標(biāo)簽

    • AnimationSet:組合漸變,就是前面多種漸變的組合,對應(yīng)<set/>標(biāo)簽

  • Interpolator接口用來控制動畫的變化速度,Android中提供了以下已實(shí)現(xiàn)該接口可供選擇的實(shí)現(xiàn)類∶

    • LinearInterpolator:動畫以均勻的速度改變

    • AccelerateInterpolator:在動畫開始的地方改變速度較慢,然后開始加速

    • AccelerateDecelerateInterpolator:在動畫開始、結(jié)束的地方改變速度較慢,中間時加速

    • CycleInterpolator :動畫循環(huán)播放特定次數(shù),變化速度按正弦曲線改變︰Math.sin(2 * mCycles * Math.PI * input)

    • DecelerateInterpolator:在動畫開始的地方改變速度較快,然后開始減速

    • AnticipateInterpolator:反向,先向相反方向改變一段再加速播放

    • AnticipateOvershootInterpolator:開始的時候向后然后向前甩一定值后返回最后的值

    • BounceInterpolator:跳躍,快到目的值時值會跳躍,如目的值100,后面的值可能依次為85,77,70,8o ,90,100

    • OvershottInterpolator:回彈,最后超出目的值然后緩慢改變到目的值


  • 調(diào)用動畫對象setAnimationListener(new AnimationListener())方法,重寫下面的三個方法實(shí)現(xiàn)對動畫的執(zhí)行狀態(tài)進(jìn)行監(jiān)聽︰

    • onAnimationStart():動畫開始

    • onAnimtaionRepeat():動畫重復(fù)

    • onAnimationEnd():動畫結(jié)束


  • 為View動態(tài)設(shè)置動畫效果步驟

    • 先調(diào)用AnimationUtils.loadAnimation(動畫xml文件)

    • 然后View控件調(diào)用startAnimation(anim)開始動畫

  • 為Fragment設(shè)置過渡動畫,可以調(diào)用FragmentTransaction對象的setTransition(int transit)為Fragment指定標(biāo)準(zhǔn)的過場動畫。

  • transit的可選值︰

    • TRANSIT_NONE∶無動畫

    • TRANSIT_FRAGMENT_OPEN:打開形式的動畫

    • TRANSIT_FRAGMENT_CLOSE:關(guān)閉形式的動畫


  • 轉(zhuǎn)場動畫(Activity Transition)基本介紹

    • 進(jìn)入∶決定Activity中的所有的視圖怎么進(jìn)入屏幕。

    • 退出︰決定一個Activity中的所有視圖怎么退出屏幕。

    • 共享元素︰決定兩個activities之間的過渡,怎么共享(它們)的視圖。

  • 進(jìn)入和退出包含如下動畫效果︰

    • explode(分解)–從屏幕中間進(jìn)或出

    • slide(滑動)-從屏幕邊緣進(jìn)或出地

    • fade(淡出)-通過改變屏幕上視圖的不透明度達(dá)到添加或者移除視圖的效果

  • 共享元素包含如下動畫效果

    • changeBounds -改變目標(biāo)視圖的布局邊界

    • changeClipBounds -裁剪目標(biāo)視圖邊界

    • changeTransform -改變目標(biāo)視圖的縮放比例和旋轉(zhuǎn)角度

    • changeImageTransform -改變目標(biāo)圖片的大小和縮放比例


Android中的音視頻管理

  • Android常見多媒體API開發(fā)

    • 利用SoundPool用來播放密集、急促而又短暫的音效

    • 使用MediaRecord錄音

    • 利用MediaPlayer播放音頻與視頻

  • SoundPool簡介

    • SoundPool一般用來播放密集,急促而又短暫的音效,比如特技音效

    • SoundPool對象可以看作是一個可以從APK中導(dǎo)入資源或者從文件系統(tǒng)中載入文件的樣本集合

    • SoundPool使用音效池的概念來管理多個播放流,如果超過流的最大數(shù)目,SoundPool會基于優(yōu)先級自動停止先前播放的流

    • SoundPool還支持自行設(shè)置聲音的品質(zhì)、音量、播放比率等參數(shù)

    • SoundPool一般在游戲用得較多,也可以為APP添加,比如酷狗音樂進(jìn)入時播放"哈嘍,酷狗"


  • MediaPlayer簡介

    • 本地資源

    • 內(nèi)部的URI,例如可以通過ContentResolver來獲取

    • 外部URL(流)對于Android所支持的的媒體格式列表

    • 該類是Android多媒體框架中的一個重要組件,可以通過這個API來播放音頻和視頻

    • 通過該類可以以最小的步驟來獲取、解碼和播放音視頻

    • 該類支持三種不同的媒體來源

  • 獲得MediaPlayer實(shí)例

    • 直接new或者調(diào)用create方法創(chuàng)建

    • 通過create方式創(chuàng)建

  • 設(shè)置播放文件

    • 通過create或setDataSource方式設(shè)置播放文件/ /①raw下的資源:

    • 利用setDataSource方法設(shè)置播放文件時的注意事項

  • MediaPlayer主要用于播放音頻,也可以用來播放視頻,但由于MediaPlay默認(rèn)沒有提供圖像輸出界面,所以播放視頻時需要借助其他的組件來顯示MediaPlayer播放的圖像輸出。

  • MediaPlay播放視頻時有以下注意事項

    • MediaPlayer是使用Surface進(jìn)行視頻的展示的

    • MediaPlayer只支持mp4、avi、3gp格式的視頻,支持格式相對單一

    • MediaPlayer可以播放網(wǎng)絡(luò)視頻,支持的網(wǎng)絡(luò)視頻的協(xié)議為:Http協(xié)議和RTSP協(xié)議兩種


  • MediaRecord簡介

    • 優(yōu)點(diǎn)︰使用方便,得到就是編碼和封裝好的音視頻文件,可以直接使用

    • 缺點(diǎn)︰無法獲取原始數(shù)據(jù),從而無法原始數(shù)據(jù)添加一些自己的處理

    • MediaRecorder是安卓提供的一個用于音視頻采集的類

    • 對于原始數(shù)據(jù)還需要進(jìn)行編碼和封裝,才能使用,為了方便,google提供了MediaRecorder這個類,通過它會自動將原始數(shù)據(jù)進(jìn)行編碼和封裝

    • MediaRecorder的優(yōu)缺點(diǎn)


使用Camera

  • Android中Camera的拍照主要有兩種

    • 調(diào)用系統(tǒng)自帶相機(jī)拍照,然后獲取拍照后的圖片

    • 自定義拍照頁面

  • 調(diào)用系統(tǒng)自帶Carema :

    • 相機(jī)拍照后會返回一個intent給onActivityResult

    • Intent的extra部分包含一個編碼過的 Bitmap

    • 拍完的圖片是不會保存到本地的,需要編碼保存圖片到SD卡中



動畫與多媒體的評論 (共 條)

分享到微博請遵守國家法律
兰西县| 石渠县| 凭祥市| 德惠市| 逊克县| 阿拉善盟| 望江县| 南城县| 舞阳县| 宜阳县| 三明市| 河津市| 屯门区| 沐川县| 濮阳市| 如皋市| 焉耆| 甘谷县| 大足县| 安远县| 洮南市| 石楼县| 南郑县| 莱西市| 永年县| 镇雄县| 江山市| 昌吉市| 仙桃市| 当涂县| 噶尔县| 友谊县| 云南省| 虎林市| 垫江县| 德格县| 宁陕县| 西乌珠穆沁旗| 拉萨市| 清水河县| 平安县|