運用容易**(贊成png/jpg/gif**)
1.應用drawable物件
2.bitmap和bitmapfactory
bitmap代表一張位圖,bitmapdrawable裡封裝的**就是乙個bitmap物件。
bitmap與bitmapdrawable之間的轉換:
a.bitmapdrawable bd = new bitmapdrawable(bitmap);
b.bitmap bitmap = bd.getbitmap();
bitmap還興許經由過程createbitmap()[挖取、挖取進行matrix變換、根據和createscaledbitmap()[進行縮放]來獲取新位圖。
bitmapfactory是乙個器材類,從不合本源闡發取得bitmap
decodebytearray(byteb,int offset,int length):指定的位元組陣列綜合。
decodefile(string pathname):從pathname指定的檔案中分析、樹立。
decodefiledescriptor(filedescriptor fd):從fd對應的檔案中解析、構建。
decoderesource(resource r,int id):依照id從指定資本中分析、創設。
decodestream(inputstream is):從指定輸入流中綜合、創立。
bitmap的**:isrecycled-()是否已**;recycle()-脅迫收受接管本身。
要會見其他儲存路子(sdcard)裡面的**,都必要憑藉bitmapfactory。
※獲取/assets/目次下的全部檔案:
assetmanager assets = getasserts();
stringfiles = assets.list(「」);
inputstream assetfile = assets.open(files[i]);
若是**還未**,先逼迫**該**:
if(bitmapdrawable!=null&&!bitmapdrawable.getbitmap().isrecycled())
繪圖1.繪圖的基礎:canvas、paint等
canvas的繪製方法[ondraw(canvas canvas)]
draw------:
cliprect():剪下乙個矩形區域、clipregion():裁剪指定區域。
rotate()/scale()/translate()對canvas進行旋轉、縮放、移動。
paint:設定繪製風格(畫筆顏色、畫筆粗細、填充風格等)
setargb()/setcolor():設定顏色 setalpha():設定透明度
setantialias():是否抗鋸齒 setpatheffect(patheffect pe):路徑效果
setshader(shader shader):畫筆的填充效果 setshadowlayer():陰影
setstrokewidth(float width):畫筆的筆觸寬度
setstrokejoin(paint.join join):轉彎處的連線風格
setstyle(paint.style style):設定paint的填充風格[stroke/fill]
settextalign(paint.align align):設定繪製文字時的文字對齊方式
settextsize(float textsize):文字大小
setdither():防抖動 setmaskfilter():
embos**askfilter:
blurmaskfilter:
rectf
2.path類
path p = new path(); p.moveto(); p.li***o(); p.li***o(); p.close()
patheffect定義繪製效果
***posepatheffect
cornerpatheffect
dashpatheffect
discretepatheffect
pathdashpatheffect
sunpatheffect
path.addrect(rectf rectf,path.direction dir)
canvas.drawtextonpath()
3.繪製遊戲動畫
定時器timer(用handler傳遞訊息進行重繪)
通知view重繪可以呼叫invalidate(在ui執行緒中)或postinvalidate(在非ui執行緒中)。
new timer().schedule(new timertask(),long delay,long period});
採用雙緩衝實現畫圖板
bitmap bitmap = bitmap.createbitmap(width,height,config.argb_8888);
canvas canvas = new canvas(); canvas.setbitmap(bitmap);
paint paint = new paint(paint.dither_flag); paint.setcolor(color.red);
paint.setstyle(paint.style.stroke); paint.setstrokewidth(1);
paint.setantialias(true); paint.setdither(true);
觸控螢幕的拖動事件:
motionevent.action_down->path.moveto(event.getx(),event.gety())
motionevent.action_move->path.quadto(prex,prey,event.getx(),event.gety())
motionevent.action_up->canvas.drawpath(path,paint)
獲取螢幕的寬和高的**:
windowmanager windowmanager = getwindowmanager();
display display = windowmanager.getdefaultdisplay();
screenwidth/height = display.getwidth/height();
圖形特效處理
1.使用matrix控制變數
matrix是android提供的乙個矩陣工具類,本身不能對影象或元件進行變換,但可以結合其他api來控制圖形、組建的變換。
matrix控制影象或元件變換的步驟:
a.獲取matrix物件,可以新建立,也可以獲取其他物件內封裝的matrix。
matrix matrix = new matrix();
b.呼叫matrix的方法進行平移、旋轉、縮放、傾斜等。
matrix.reset();//重置
matrix.settranslate()/setskew()/setrotate()/setscale()//平移/傾斜/旋轉/縮放
c.將程式對 matrix所做的變換應用到指定影象或元件。
bitmap bitmap = bitmap.create(bitmap b,int x,int y,int width,int height,matrix m,boolean filter);
canvas.drawbitmap(bitmap,matrix,null[paint p]);
2.使用drawbitmapmesh扭曲影象
canvas提供了乙個drawbitmapmesh(bitmap b, int meshwidth, int meshheight, floatverts, int veroffset, int colors, int coloroffset, paint p)方法,該方法可以對bitmap進行扭曲。
b:原位圖、meshwidth:控制在橫向上把原位圖分成多少格、verts:
長度為(meshwidth+1)*(meshheight+1)*2的一維陣列,記錄扭曲後的點陣圖各頂點的位置,形式如(x0,y0)、(x1,y1)…、veroffset:控制陣列中從第幾個元素開始對於b進行扭曲。
3.使用shader填充圖形
shader:bitmapshader(位圖渲染)/***poseshader(混合[組合]渲染)/lineargradient(線性漸變渲染)/radialgradient(光束[圓形漸變]渲染)/sweepgradient(梯度[角度變換]渲染)等。
shader.tilemode.repeat/mirror(重複/映象)
逐幀(frame)動畫
1.animationdrawable與逐幀動畫
在xml資源檔案中定義,語法如下
android:onshot=[「true」|」false」]>
android:duration=」integer」 />
onshot:是否迴圈 true則不會迴圈,否則迴圈
也可以先建立animationdrawable,然後通過addframe(drawable frame,int duration)新增幀。通過imageview來顯示動畫。animationdrawable的start()和stop()來控制動畫的**和停止。
獲取animationdrawable的動畫物件:
---animationdrawable ad = (animationdrawable)imageview.getbackground();
圖形影象處理培訓總結
我覺得學習coreldraw軟體一門課程是很成功的。聯絡到我們的教學工作中,我們應該負起比較主要的責任。在學校裡有了太多的基礎課程,也許在剛開始的學習裡,他們還能夠保持著新鮮感,但是在學習之後,可以說再有新鮮感就是一件比較困難的事情了。其次,學生們沒有認識到這門課程的價值。他們有時會認為學習這門課程...
圖形影象處理課程標準
一 概述 1 課程性質 photoshop是adobe公司推出的一款目前非常流行 應用非常廣泛的 處理軟體。伴隨著計算機的普及和計算機在各行業的廣泛應用,photoshop發揮了越來越大的作用。計算機和數位相機的普及,使用者可以在家中進行簡單的 處理,這使得photoshop可以作為乙個應用軟體在所...
《計算機圖形影象處理Photoshop CS》教學反思
3 作品展覽是提高成功自信的保障 儘管時間緊張,但是必須在每週抽一點時間 或在課間 將學生自己的作品展示給學生互相瀏覽,讓他們感受自己的作品與別人的差別在 通過欣賞別人的優點來提高自己的不足,在找差距的同時還可以拓展學生的想像空間,一方面培養了學生興趣和創造力,提高了鑑賞能力 分析和解決問題的能力,...