版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
Android移動(dòng)開發(fā)基礎(chǔ)案例教程第10章高級(jí)編程·
Fragment·Android5.0新特性·圖形圖像處理·
動(dòng)畫、多媒體作業(yè)點(diǎn)評(píng)GET方式提交數(shù)據(jù)和POST方式提交數(shù)據(jù)的區(qū)別。Handler消息機(jī)制中四個(gè)關(guān)鍵對(duì)象的作用。Android中的補(bǔ)間動(dòng)畫與逐幀動(dòng)畫的區(qū)別Fragment的生命周期預(yù)習(xí)檢查10.4
Fragment
10.1圖形圖像處理
10.2
動(dòng)畫10.3多媒體主講內(nèi)容圖形圖像處理常用類Bitmap是可以獲取圖像文件信息,進(jìn)行圖像剪切、旋轉(zhuǎn)、縮放等操作,并可以指定格式保存圖像文件。BitmapFactory是位圖工廠,它是一個(gè)工具類。Paint代表畫筆,用來描述圖形的顏色及風(fēng)格。Canvas代表畫布,通過該類提供的方法,可以繪制各種圖形。Matrix為圖片添加特效的效果。圖形圖像處理方法名稱功能描述createBitmap(intwidth,intheight,Configconfig)創(chuàng)建位圖,width代表要?jiǎng)?chuàng)建的圖片的寬度,height代表高度,config代表圖片的配置信息createBitmap(intcolors[],intoffset,intstride,intwidth,intheight,Configconfig)使用顏色數(shù)組創(chuàng)建一個(gè)指定寬高的位圖,顏色數(shù)組的個(gè)數(shù)為width*heightcreateBitmap(Bitmapsrc)使用源位圖創(chuàng)建一個(gè)新的BitmapcreateBitmap(Bitmapsource,intx,inty,intwidth,intheight)從源位圖的指定坐標(biāo)開始“挖取”指定寬高的一塊圖像來創(chuàng)建新的Bitmap對(duì)象createBitmap(Bitmapsource,intx,inty,intwidth,intheight,Matrixm,booleanfilter)從源位圖的指定坐標(biāo)開始“挖取”指定寬高的一塊圖像來創(chuàng)建新的Bitmap對(duì)象,并按照Matrix規(guī)則進(jìn)行變換isRecycled()判斷Bitmap對(duì)象是否被回收recycle()回收Bitmap對(duì)象…………Bitmap常用方法10.1.1Bitmap類創(chuàng)建Bitmap實(shí)例Bitmap.Configconfig=Config.ARGB_4444;Bitmapbitmap=Bitmap.createBitmap(width,height,config);10.1.1Bitmap類方法名稱功能描述decodeFile(StringpathName)從指定文件中解析、創(chuàng)建Bitmap對(duì)象decodeStream(InputStreamis)從指定輸入流中解析、創(chuàng)建Bitmap對(duì)象decodeResource(Resourcesres,intid)根據(jù)給定的資源id,從指定資源中解析、創(chuàng)建Bitmap對(duì)象…………BitmapFactory常用方法Bitmapbitmap=BitmapFactory.decodeFile("/sdcard/meinv.jpg");Bitmapbitmap=BitmapFactory.decodeResource(getResources(),R.drawable.ic_launcher);10.1.2BitmapFactory類方法名稱功能描述Paint()創(chuàng)建一個(gè)Paint對(duì)象,并使用默認(rèn)屬性Paint(intflags)創(chuàng)建一個(gè)Paint對(duì)象,并使用指定屬性setColor(intcolor)設(shè)置顏色setAlpha(inta)設(shè)置透明度setTextSize(floattextSize)設(shè)置繪制文本時(shí)的文字大小setShadowLayer(floatradius,floatdx,floatdy,intcolor)設(shè)置陰影,參數(shù)radius為陰影的角度;dx和dy為陰影在x軸和y軸上的距離;color為陰影的顏色…………Paint常用方法Paintpaint=newPaint();paint.setColor(Color.RED);10.1.3Paint類方法名稱功能描述drawRect(Rectr,Paintpaint)使用畫筆畫出指定矩形drawOval(RectFoval,Paintpaint)使用畫筆畫出指定橢圓drawCircle(floatcx,floatcy,floatradius,Paintpaint)使用畫筆在指定位置畫出指定半徑的圓drawLine(floatstartX,floatstartY,floatstopX,floatstopY,Paintpaint)使用畫筆在指定位置畫線setTextSize(floattextSize)設(shè)置繪制文本時(shí)的文字大小drawRoundRect(RectFrect,floatrx,floatry,Paintpaint)使用畫筆繪制指定圓角矩形,其中rx表示X軸圓角半徑,ry表示Y軸圓角半徑…………Canvas常用方法10.1.4Canvas類protectedvoidonDraw(Canvascanvas){super.onDraw(canvas);Paintpaint=newPaint();
paint.setColor(Color.RED);Rectr=newRect(40,40,200,100);
canvas.drawRect(r,paint);}10.1.4Canvas類方法名稱功能描述Matrix()創(chuàng)建一個(gè)唯一的Matrix對(duì)象setRotate(floatdegrees)將Matrix對(duì)象圍繞(0,0)旋轉(zhuǎn)degrees度setRotate(floatdegrees,floatpx,floatpy)將Matrix對(duì)象圍繞指定位置(px,py)旋轉(zhuǎn)degrees度setScale(floatsx,floatsy)對(duì)Matrix對(duì)象進(jìn)行縮放,參數(shù)sx代表X軸上的縮放比例,sy代表Y軸上的縮放比例setSkew(floatkx,floatky)讓Matirx對(duì)象傾斜,在X軸上傾斜kx,在Y軸上傾斜kysetTranslate(floatdx,floatdy)平移Matrix對(duì)象,(dx,dy)為Matrix平移后的坐標(biāo)…………Matrix常用方法Matrixmatrix=newMatrix();matrix.setRotate(30);10.1.5Matrix類123功能描述:技術(shù)要點(diǎn):用戶交互界面的設(shè)計(jì)與實(shí)現(xiàn)XML文件(activity_main.xml)的編寫實(shí)體類(MainActivity.java)的編寫界面邏輯代碼的設(shè)計(jì)與實(shí)現(xiàn)案例代碼(詳見教材Px—Pxx)實(shí)現(xiàn)步驟:觸摸手機(jī)屏幕,使圖片變透明利用Android提供的類處理圖片10.1.6實(shí)戰(zhàn)演練——刮刮卡10.4
Fragment
10.1圖形圖像處理10.2動(dòng)畫10.3多媒體主講內(nèi)容Android中的動(dòng)畫補(bǔ)間動(dòng)畫通過對(duì)View中內(nèi)容進(jìn)行一系列的圖形變換來實(shí)現(xiàn)動(dòng)畫效果,其中圖形變化包括平移、縮放、旋轉(zhuǎn)、改變透明度等。按照事先準(zhǔn)備好的靜態(tài)圖像順序播放的,利用人眼的“視覺暫留”原理,給用戶造成動(dòng)畫的錯(cuò)覺。逐幀動(dòng)畫在Android開發(fā)中,避免不了用到動(dòng)畫,Android中的動(dòng)畫分為補(bǔ)間動(dòng)畫和逐幀動(dòng)畫兩種。主講內(nèi)容補(bǔ)間動(dòng)畫在Android中,提供了四種補(bǔ)間動(dòng)畫:透明度漸變動(dòng)畫(AlphaAnimation)旋轉(zhuǎn)動(dòng)畫(RotateAnimation)縮放動(dòng)畫(ScaleAnimation)平移動(dòng)畫(TranslateAnimation)10.2.1補(bǔ)間動(dòng)畫(TweenAnimation)透明度漸變動(dòng)畫透明度漸變動(dòng)畫是通過改變View組件透明度來實(shí)現(xiàn)的漸變效果。它主要通過為動(dòng)畫指定開始時(shí)的透明度、結(jié)束時(shí)的透明度以及動(dòng)畫持續(xù)時(shí)間來創(chuàng)建動(dòng)畫。10.2.1補(bǔ)間動(dòng)畫(TweenAnimation)<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="/apk/res/android"><alphaandroid:interpolator="@android:anim/linear_interpolator"android:repeatMode="reverse"android:repeatCount="infinite"android:duration="1000"android:fromAlpha="1.0"android:toAlpha="0.0"/></set>透明度漸變動(dòng)畫文件(.xml)旋轉(zhuǎn)動(dòng)畫旋轉(zhuǎn)動(dòng)畫是通過為動(dòng)畫指定開始時(shí)的旋轉(zhuǎn)角度、結(jié)束時(shí)的旋轉(zhuǎn)角度以及動(dòng)畫播放時(shí)長(zhǎng)來創(chuàng)建動(dòng)畫的。10.2.1補(bǔ)間動(dòng)畫(TweenAnimation)<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="/apk/res/android"><rotateandroid:fromDegrees="0"android:toDegrees="360"android:pivotX="50%"android:pivotY="50%"android:repeatMode="reverse"android:repeatCount="infinite"android:duration="1000"/></set>旋轉(zhuǎn)動(dòng)畫文件(.xml)縮放動(dòng)畫縮放動(dòng)畫是通過為動(dòng)畫指定開始時(shí)的縮放系數(shù)、結(jié)束時(shí)的縮放系數(shù)以及動(dòng)畫持續(xù)時(shí)長(zhǎng)來創(chuàng)建動(dòng)畫的。10.2.1補(bǔ)間動(dòng)畫(TweenAnimation)<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="/apk/res/android"><scaleandroid:repeatMode="reverse"android:repeatCount="infinite"android:duration="3000"android:fromXScale="1.0"android:fromYScale="1.0"android:toXScale="0.5"android:toYScale="0.5"android:pivotX="50%"android:pivotY="50%"/></set>縮放動(dòng)畫文件(.xml)平移動(dòng)畫平移動(dòng)畫就通過為動(dòng)畫指定開始位置、結(jié)束位置以及動(dòng)畫持續(xù)時(shí)長(zhǎng)來創(chuàng)建動(dòng)畫的。10.2.1補(bǔ)間動(dòng)畫(TweenAnimation)<?xmlversion="1.0"encoding="utf-8"?><setxmlns:android="/apk/res/android"><translateandroid:fromXDelta="0.0"android:fromYDelta="0.0"android:toXDelta="100"android:toYDelta="0.0"android:repeatCount="infinite"android:repeatMode="reverse"android:duration="4000"/></set>平移動(dòng)畫文件(.xml)123功能描述:技術(shù)要點(diǎn):用戶交互界面的設(shè)計(jì)與實(shí)現(xiàn)創(chuàng)建四種動(dòng)畫文件界面邏輯代碼的設(shè)計(jì)與實(shí)現(xiàn)案例代碼(詳見教材Px—Pxx)實(shí)現(xiàn)步驟:創(chuàng)建四種補(bǔ)間動(dòng)畫編寫四種動(dòng)畫文件10.2.1補(bǔ)間動(dòng)畫(TweenAnimation)逐幀動(dòng)畫逐幀動(dòng)畫是按照準(zhǔn)備好的靜態(tài)圖像順序播放的,利用人眼的“視覺暫留”原理,造成動(dòng)畫的錯(cuò)覺。逐幀動(dòng)畫的原理與放膠片看電影的原理是一樣的,它們都是一張一張地播放事先準(zhǔn)備好的靜態(tài)圖像。10.2.2逐幀動(dòng)畫(FrameAnimation)123功能描述:技術(shù)要點(diǎn):用戶交互界面的設(shè)計(jì)與實(shí)現(xiàn)引入圖片資源創(chuàng)建Frame動(dòng)畫文件編寫界面邏輯代碼案例代碼(詳見教材Px—Pxx)實(shí)現(xiàn)步驟:播放逐幀動(dòng)畫掌握實(shí)現(xiàn)逐幀動(dòng)畫步驟10.2.2逐幀動(dòng)畫(FrameAnimation)10.4
Fragment
10.1圖形圖像處理10.2動(dòng)畫10.3多媒體主講內(nèi)容方法名稱功能描述setDataSource()設(shè)置要播放的音頻文件的位置prepare()在開始播放之前調(diào)用這個(gè)方法完成準(zhǔn)備工作start()開始或繼續(xù)播放音頻pause()暫停播放音頻reset()將MediaPlayer對(duì)象重置到剛剛創(chuàng)建的狀態(tài)seekTo()從指定位置開始播放音頻stop()停止播放音頻,調(diào)用該方法后MediaPlayer對(duì)象無法在播放音頻release()釋放掉與MediaPlayer對(duì)象相關(guān)的資源isPlaying()判斷當(dāng)前MediaPlayer是否正在播放音頻getDuration獲取載入的音頻文件的時(shí)長(zhǎng)…………MediaPlayer是用于播放音頻和視頻的,它支持多種格式音頻文件(3gp、mp4),并提供了非常全面的控制方法。10.3.1MediaPlayer播放音頻MediaPlayermediaPlayer=newMediaPlayer();mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);MediaPlayer接收音頻類型有很多,其中有四種較為常用的類型:AudioManager.STREAM_MUSIC(音樂)AudioManager.STREAM_RING(響鈴)AudioManager.STREAM_ALARM(鬧鐘)AudioManager.STREAM_NOTIFICTION(提示音)音頻類型不同占據(jù)的內(nèi)存空間也不同,音頻時(shí)間越短占的內(nèi)存越小創(chuàng)建MediaPlayer10.3.1MediaPlayer播放音頻設(shè)置數(shù)據(jù)源設(shè)置數(shù)據(jù)源有三種方式,分別是播放應(yīng)用自帶的音頻文件、播放SD卡中的音頻文件、播放網(wǎng)絡(luò)音頻文件。mediaPlayer.create(this,R.raw.xxx);mediaPlayer.setDataSource("mnt/sdcard/xxx.mp3");mediaPlayer.setDataSource("http://www.xxx.mp3");10.3.1MediaPlayer播放音頻播放本地音頻文件mediaPlayer.prepare();mediaPlayer.start();10.3.1MediaPlayer播放音頻mediaPlayer.prepareAsync();mediaPlayer.setOnPreparedListener(newOnPreparedListener){publicvoidonPrepared(MediaPlayerplayer){ mediaPlayer.start();}}播放網(wǎng)絡(luò)音頻文件10.3.1MediaPlayer播放音頻if(mediaPlayer!=null&&mediaPlayer.isPlaying()){ mediaPlayer.pause();}暫停播放10.3.1MediaPlayer播放音頻播放狀態(tài)下進(jìn)行重播重新播放暫停狀態(tài)下進(jìn)行重播if(mediaPlayer!=null&&mediaPlayer.isPlaying()){mediaPlayer.seekTo(0);return;}if(mediaPlayer!=null){mediaPlayer.seekTo(0);mediaPlayer.start();}10.3.1MediaPlayer播放音頻停止播放if(mediaPlayer!=null&&mediaPlayer.isPlaying()){mediaPlayer.stop();mediaPlayer.release();mediaPlayer=null;}10.3.1MediaPlayer播放音頻VideoView方法名稱功能描述setVideoPath()設(shè)置要播放的視頻文件的位置start()開始或繼續(xù)播放音頻pause()暫停播放音頻resume()將視頻重新開始播放seekTo()從指定位置開始播放視頻isPlaying()判斷當(dāng)前是否正在播放視頻getDuration()獲取載入的視頻文件的時(shí)長(zhǎng)…………VideoView組件播放視頻最簡(jiǎn)單,它將視頻的顯示和控制集于一身,因此,借助它就可以完成一個(gè)簡(jiǎn)易的視頻播放器。10.3.2VideoView播放視頻使用VideoView創(chuàng)建VideoView<VideoViewandroid:id="@+id/videoview"android:layout_width="match_parent"android:layout_height="match_parent"/>視頻的播放VideoViewvideoView=(VideoView)findViewById(R.id.videoview);videoView.setVideoPath("mnt/sdcard/apple.avi");videoView.setVideoURI(Uri.parse("http://www.xxx.avi"));videoView.start();10.3.2VideoView播放視頻添加控制器控制器MediaController是一個(gè)包含媒體播放器(MediaPlayer)控件的視圖,包含了一些典型的按鈕如:播放/暫停(Play/Pause)、倒帶(Rewind)、快進(jìn)(FastForward)與進(jìn)度滑動(dòng)器(progressslider)。它管理媒體播放器(MediaController)的狀態(tài)以保持控件的同步。MediaControllercontroller=newMediaController(context);videoView.setMediaController(controller);10.3.2VideoView播放視頻123功能描述:技術(shù)要點(diǎn):用戶交互界面的設(shè)計(jì)與實(shí)現(xiàn)界面邏輯代碼的設(shè)計(jì)與實(shí)現(xiàn)案例代碼(詳見教材Px—Pxx)實(shí)現(xiàn)步驟:播放SD卡中的視頻文件通過VideoView實(shí)現(xiàn)播放視頻10.3.3實(shí)戰(zhàn)演練——視頻播放器10.4Fragment
10.1圖形圖像處理10.2動(dòng)畫10.3多媒體主講內(nèi)容Fragment簡(jiǎn)介Fragment(碎片)是一種可以嵌入在Activity中的UI片段,與Activity非常相似,不僅包含布局,同時(shí)也具有自己的生命周期。10.4.1Fragment簡(jiǎn)介生命周期Fragment不能獨(dú)立存在必須嵌入到Activity中使用,所以Fragment生命周期直接受所在的Activity影響。當(dāng)Activity暫停時(shí),它擁有的所有Fragment都暫停,當(dāng)Activity銷毀時(shí),它擁有的所有Fragment都被銷毀。10.4.2Fragment的生命周期ActivityStateCreatedStartedFragmentCallbacksonAttach()onCreate()onCreateView()onActivityCreated()onStart()onResume()ResumedPausedonPaused()StoppedonStop()DestroyedonDestriyView()onDesttroy()onDetach()10.4.2Fragment的生命周期10.4.3Fragment的創(chuàng)建publicclassMyFragmentextendsFragment{publicMyFragment(){//Requiredemptypublicconstructor}@OverridepublicViewonCreateView(LayoutInflaterinflater,ViewGroupcontainer,BundlesavedInstanceState){//Inflatethelayoutforthisfragmentreturninflater.inflate(R.layout.fragment_my,container,false);}}10.4.3Fragment的創(chuàng)建Fragment的使用在Activity中使用Fragment時(shí),可以通過兩種方式將Fragment添加到Activity中,一種是通過布局文件添加,一種是通過代碼動(dòng)態(tài)添加。通過布局文件添加Fragment<fragmentandroid:id="@+id/fragment"android:name="cn.itcast.myfragment.MyFragment"android:layout_width="match_parent"android:layout_height="match_parent"></fragment>10.4.3Fragment的創(chuàng)建Fragment的使用通過代碼動(dòng)態(tài)添加FragmentMyFragmentfragment=newMyFragment();FragmentManagerfm=getFragmentManager();FragmentTransactionbeginTransaction=fm.beginTransaction();beginTransaction.add(R.id.rl,fragment);beginTmit();10.4.3Fragment的創(chuàng)建123功能描述:技術(shù)要點(diǎn):用戶交互界面的設(shè)計(jì)與實(shí)現(xiàn)創(chuàng)建三個(gè)Fragment界面邏輯代碼的設(shè)計(jì)與實(shí)現(xiàn)案例代碼(詳見教材Px—Pxx)實(shí)現(xiàn)步驟:實(shí)現(xiàn)三個(gè)界面進(jìn)行滑動(dòng)切換創(chuàng)建Fragment實(shí)現(xiàn)滑動(dòng)效果10.4.4實(shí)戰(zhàn)演練——滑動(dòng)切換界面10.5Android5.0新特性主講內(nèi)容抽屜動(dòng)畫Android5.0中新增抽屜動(dòng)畫(DrawerLayout),通過抽屜動(dòng)畫可以實(shí)現(xiàn)側(cè)滑效果。<android.support.v4.widget.DrawerLayoutandroid:layout_width="match_parent"android:layout_height="match_parent">….….….</android.support.v4.widget.DrawerLayout>10.5.1抽屜動(dòng)畫抽屜動(dòng)畫DrawerLayout控件只需在布局文件中引入,不需
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 用藥指導(dǎo)與患者安全依從性
- 車間電工考試試題及答案
- 質(zhì)保監(jiān)察培訓(xùn)試題及答案
- 2025-2026五年級(jí)音樂期末測(cè)試卷上學(xué)期
- 2025-2026二科學(xué)上學(xué)期期末卷
- 1990高考語文作文題目及答案
- 針刀鏡護(hù)理人員操作指引
- 腸道微生物與腫瘤個(gè)體化防治新策略
- 肝轉(zhuǎn)移轉(zhuǎn)化治療的病理完全緩解預(yù)測(cè)
- 洗漱室衛(wèi)生管理制度
- 青年教師培訓(xùn):AI賦能教育的創(chuàng)新與實(shí)踐
- 2025年山東省中考統(tǒng)考數(shù)學(xué)模擬試卷(含答案)
- 廣東省東莞市2024-2025學(xué)年高一上學(xué)期1月期末英語試題【含答案解析】
- QC080000體系文件手冊(cè)
- GB/T 44233.2-2024蓄電池和蓄電池組安裝的安全要求第2部分:固定型電池
- DL∕T 612-2017 電力行業(yè)鍋爐壓力容器安全監(jiān)督規(guī)程
- 2024年國企行測(cè)題庫
- 煙囪技術(shù)在血管腔內(nèi)修復(fù)術(shù)中的應(yīng)用
- 崗位聘用登記表
- 2023年高鐵信號(hào)車間副主任述職報(bào)告
- 第3章 圓錐曲線的方程【精簡(jiǎn)思維導(dǎo)圖梳理】高考數(shù)學(xué)高效備考 人教A版2019選擇性必修第一冊(cè)
評(píng)論
0/150
提交評(píng)論