Android圖形圖像使用總結(jié)_第1頁
Android圖形圖像使用總結(jié)_第2頁
Android圖形圖像使用總結(jié)_第3頁
Android圖形圖像使用總結(jié)_第4頁
Android圖形圖像使用總結(jié)_第5頁
已閱讀5頁,還剩3頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、android圖形圖像使用總結(jié)一. 圖形特效(一)特效的實現(xiàn)方式在android中,提供了 3種方式實現(xiàn)特效,setxxx方 法,postxxx 和 prexxx ()方法。1 . setxxx方法用于直接設(shè)置matrix的值,每使用一次 setxxx()方法,整個的matrix都會變掉。2 . postxxx方法用于采用后乘的方式為matrix設(shè)置值, 可以連續(xù)多次使用post完成多個變換3 . prexxx方法用于采用前乘的方式為matrix設(shè)置值,使 用prexxx方法的設(shè)置操作最先發(fā)生.(二)特效的表現(xiàn)形式1 旋轉(zhuǎn):setrotate (float dgrees, float px,

2、float py)px、py為旋轉(zhuǎn)的軸心2 縮放:setscale (float sx. float sy)s x和sy用于指定x軸和軸y軸的縮放比例android 提供了 android .graphicsmatrix 類 白勺 seetscale (), postscale ()和 prescale ()方法可對圖像進行 縮放.這三個方法除了方法名不同外,其它的語法格式均相 同3 傾斜 setskew (float kx. float ky)ky和ky用于指定x軸和軸y軸的傾斜量android 提供了 android .graphics .matrix 類 的 setskew() (),

3、postskew 0和preskew()方法可對圖像進行傾 斜.這三個方法除了方法名不同外,其它的語法格式均相同setskew (float sx,float sy,float px,float py)px和py是以它們?yōu)檩S心進行傾斜4 .平移 settranslate (float dx. float dy)dy和dy用于指定移動到的位置的x和y的坐標(biāo)android 提供了 android, graphics. matrix 類 的 settranslate (), posttranslate ()和 pretranslate ()方 法可對圖像進行平移這三個方法除了方法名不同外,其它 的語

4、法格式均相同二. bitmapshader 渲染圖像在android中bitmapshader類主要用來渲染圖像,如果需 要將一張圖片裁剪成橢圓或者圓形等形狀顯示到屏幕上時, 就可以使用bitmapshader類來實現(xiàn),使用bitmapshader類 來渲染圖像的基本步驟如下創(chuàng)建bitmapshader 類的對象,通過paint 的 setshader () 方法來設(shè)置渲染對象.在繪制圖像時,使用已經(jīng)設(shè)置了 setshader ()方法的畫筆.三. 下面是一個圖形特效控制的一個示例程序通過按鍵來控制圖像的放大縮小、旋轉(zhuǎn)、傾斜。(一)自定義的view的代碼package 1esson10 fra

5、gmentfordata. myapplication;import android content. context; import android graphics bitmap;import android graphics. bitmapfactory;import android. graphics. canvas;import android, graphics. matrix;import android ut訂.attributeset;import android.viewkeyevent;import android, view. view;/*圖像特效的演示*/pub1i

6、c class myview extends view /定義bi tmap對象bitmap bitmap;/創(chuàng)建矩陣對象matrix matrix = new matrix();/寬和高int width, height;縮放比例float scale = if;/圖像的狀態(tài)是縮放還是旋轉(zhuǎn)boolean isscale = false;判斷是否旋轉(zhuǎn)boolean istrotate = false;/x軸方向傾斜的角度private float sx;v旋轉(zhuǎn)的角度private float degress;重寫倆個構(gòu)造方法public myview(context context) supe

7、r (context); initviewo ;public myview(context context, attributeset attrs) super(context, attrs); initviewo ;/*初始化數(shù)據(jù)*/private void initviewo 獲取位圖bitmap=getcontext(). getresources()< getdrawable(r. mipmap. imgol);bitmap = bitmapfactory. decodenesource(getresources(), rmipmap. a3); /獲取寬和高width = bi

8、tmap. getwidth();height = bi tmap. getheight();使當(dāng)前的視圖獲取焦點this. setfocusable(true);/*重寫ondraw重繪的方法*/©overrideprotected void ondraw(canvas canvas) super. ondraw(canvas);matrix, reset () ;/s3if (isscale) 伸縮狀態(tài)matrix. setscale (scale, scale); else 傾斜狀態(tài)matrix. setskew(sx, 0);if (istrotate) /順時針旋轉(zhuǎn)30度m

9、atrix setrotate(degress, 0. 5f*width, 0.5f*height);根據(jù)原始位圖和matrix創(chuàng)建新圖片bitmap bit = bitmap areatebit/胸0, 0, width, height, matrix, true); 從新繪制位圖 can vas. drawbi tmap(bi t, matrix, null);/*鍵盤控制的邏輯*/0venhdepublic boolean onkeydown(int keycode, keyevent event) switch (keycode) case keyevent. keyc0de_a/點擊

10、 a 向左傾斜 isscale = false;i strotate二false;sx -二 0. 1;invalidate();/重繪break;case keyevent. keycode :/點擊 d 向右傾斜 isscale = false;istrotate二false;sx += 0. 1;invalidate() ;/重繪break;case keyevent. keycodejt /點擊 w 圖像變大 isscale = true;istrotate二false;scale + 二 0. 1;invalidate0 ;重繪break;case keyevent. keycode

11、 s:/點擊 s 圖像變小 isscale 二 true;istrotate=false;scale 一二 0. 1;invalidateo ;/重繪 break;case keyevent. keycode_x /點擊x圖像順時針旋轉(zhuǎn)30度 istrotate = true;degress +二 30;invalidateo ;/重繪 break;return super.onkeydown(keycode, event);(二)調(diào)用類public class mainactivity extends activity ©overrideprotected void oncreate(bundle sav

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論