好用的手機繪畫軟件有妙筆生花、MediBang Paint Pro、Sketch、InfiniteDesign、Painter。

創(chuàng)新互聯(lián)公司一直秉承“誠信做人,踏實做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!為您提供成都網(wǎng)站建設(shè)、網(wǎng)站制作、成都網(wǎng)頁設(shè)計、重慶小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、成都APP應用開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計公司,等你一起來見證!
1、妙筆生花
妙筆生花為一款專業(yè)級的繪圖應用程序基于iPhone及iPod Touch移動平臺。SketchBookreg;Mobile通過簡潔及直觀的用戶界面提供完整的素描和繪畫工具。
使用SketchBookreg;Mobile便可隨時隨地數(shù)碼紀錄創(chuàng)作靈感。此移動版本與著名的SketchBook Pro使用相同的繪畫引擎,配有一流的筆刷工具及流暢的鉛筆工具。
2、MediBang Paint Pro
MediBang Paint Pro為一款免費的漫畫插畫繪圖應用。不僅可以繪制出精美的漫畫插畫,還可以通過MediBang Paint制作漫畫。
因為MediBang Paint具備簡單切割漫畫格和可以分別整理每個漫畫資料的頁面管理功能。而且MediBang Paint搭載了最適合繪圖板的繪畫引擎,可以使各個品牌的繪圖板發(fā)揮出最大的功能。
3、Sketch
Sketch為一款適用于所有設(shè)計師的矢量繪圖應用。矢量繪圖也是進行網(wǎng)頁,圖標以及界面設(shè)計的最好方式。但除了矢量編輯的功能之外,Sketch同樣添加了一些基本的位圖工具,比如模糊和色彩校正。Sketch軟件的特點是容易理解,上手簡單,對于有設(shè)計經(jīng)驗的設(shè)計師來說,入門門檻很低。
4、InfiniteDesign
InfiniteDesign軟件功能特色有無限畫布(平移,縮放,旋轉(zhuǎn));無限圖層和圖層選項:分割,合并,翻轉(zhuǎn),重復,透明轉(zhuǎn)換層;濾鏡效果包括四種類型的模糊,內(nèi)部或外部的陰影;流體界面設(shè)計的流動性和充分的觸摸屏設(shè)備進行了優(yōu)化;保存為JPEG或PNG(背景或無背景)。
5、Painter
Painter是數(shù)碼素描與繪畫工具的選擇,屬于一款仿自然繪畫軟件,擁有全面和逼真的仿自然畫筆。它是專門為渴望追求自由創(chuàng)意及需要數(shù)碼工具來仿真?zhèn)鹘y(tǒng)繪畫的數(shù)碼藝術(shù)家、插畫畫家及攝影師而開發(fā)的。它能通過數(shù)碼手段復制自然媒質(zhì)(Natural Media)效果。
前面講解了Canvas的基本概念, Android繪圖之Canvas概念理解(5) ,
對Canvas的概念進行了分析,但是沒有說明和屏幕的關(guān)系,Canvas不等于屏幕,屏幕不會動的,我們也無法對屏幕進行(平移,縮放等)操作,只能對Canvas進行操作,所以對Canvas進行操作,屏幕不動,最終會導致看到的圖像不同。
下面開始講解Canvas的變幻操作:
包括:translate,rotate,scale,skew,clip,clipout,matrix
先從最簡單的平移開始:
對Canvas進行平移,
dx: x軸方向進行平移,正值向屏幕右側(cè)
dy:y軸方向進行平移,正值向屏幕下方
繪制兩個點查看原點位置。
原點顯然改變了,以后再繪制任何形狀都是以translate后的原點開始繪制。
參數(shù)說明
sx:橫向的縮放,默認為1,小數(shù)縮小,整數(shù)放大
sy:縱向的縮放,默認為1,小數(shù)縮小,整數(shù)放大
px,py,看源碼知道是先translate,執(zhí)行sx,sy然后再translate反方向。
第二次translate的坐標為(-px sx,-px sy),最終的效果就是px,py是縮放后不動的點。
縮放后坐標減半。
如果想控制縮放后的位置,如何控制呢,這就需要第二個函數(shù)。
還可以控制其他位置,例如控制縮放后在中心。
rotate有兩個函數(shù):
rotate(float degrees)
rotate(float degrees, float px, float py)
Degree:旋轉(zhuǎn)的角度,正值為順時針,負值為逆時針
Px,py:旋轉(zhuǎn)的中心,如果不指定旋轉(zhuǎn)中心默認為(0,0)點
指定旋轉(zhuǎn)中心為矩形中心
參數(shù)說明:
sx:畫布在x方向上傾斜相應的角度,sx傾斜角度的tan值,
sy:畫布在y軸方向上傾斜相應的角度,sy為傾斜角度的tan值,
根據(jù)矩形或者路徑裁剪畫布,畫布被切割之后,只有部分區(qū)域可用,其他區(qū)域無法繪制內(nèi)容。
Clip函數(shù)切割的區(qū)域可用,clipOut未被切割的區(qū)域可用。(過時函數(shù)不再講解)
Matrix提供了一些方法來控制變換:
android繪圖之Paint(1)
android繪圖之Canvas基礎(chǔ)(2)
Android繪圖之Path(3)
Android繪圖之drawText繪制文本相關(guān)(4)
Android繪圖之Canvas概念理解(5)
Android繪圖之Canvas變換(6)
Android繪圖之Canvas狀態(tài)保存和恢復(7)
Android繪圖之PathEffect (8)
Android繪圖之LinearGradient線性漸變(9)
Android繪圖之SweepGradient(10)
Android繪圖之RadialGradient 放射漸變(11)
Android繪制之BitmapShader(12)
Android繪圖之ComposeShader,PorterDuff.mode及Xfermode(13)
Android繪圖之drawText,getTextBounds,measureText,FontMetrics,基線(14)
Android繪圖之貝塞爾曲線簡介(15)
Android繪圖之PathMeasure(16)
Android 動態(tài)修改漸變 GradientDrawable
Canvas畫布,用于繪制出各種形狀配合畫布的變幻操作可以繪制出很多復雜圖形,基本的繪制圖形分類。
提供的繪制函數(shù):
上面四個函數(shù)都可以繪制canvas的背景,注意到PorterDuff.Mode變量,它只對兩個canvas繪制bitmap起作用,所以此處暫時不討論mode參數(shù)(沒有設(shè)置mode默認使用srcover porterduff mode)。
Rect 和RectF都是提供一個矩形局域。
(1)精度不一樣,Rect是使用int類型作為數(shù)值,RectF是使用float類型作為數(shù)值。
(2)兩個類型提供的方法也不是完全一致。
**
rect:RectF對象,一個矩形區(qū)域。
rx:x方向上的圓角半徑。
ry:y方向上的圓角半徑。
paint:繪制時所使用的畫筆。**
**
cx 圓心x
cy 圓心y
radius半徑**
需要一個Path,代表路徑后面會講解。
繪制線的集合,參數(shù)中pts是點的集合,兩個值代表一個點,四個值代表一條線,互相之間不連接。
offset跳過的點,count跳過之后要繪制的點的總數(shù),可以用于集合中部分點的繪制。
跳過部分節(jié)點:
沒有跳過點
RectF oval:生成弧的矩形,中心為弧的圓心
float startAngle:弧開始的角度,以X軸正方向為0度,順時針
float sweepAngle:弧持續(xù)的角度
boolean useCenter:是否有弧的兩邊,True,還兩邊,F(xiàn)alse,只有一條弧
在矩形框內(nèi)畫一個橢圓,如果是個正方形會畫出一個圓。
canvas.drawPoint();
canvas.drawPoints();
**
只需要提供兩個點一個坐標就可以繪制點。
canvas.drawPoint(20,20,mPaint);
float[] points = {30,40,40,50,60,60};
canvas.drawPoints(points,mPaint);**
這幾種方法類似:
canvas.drawText("好好學習,天天向上",100,100,mPaint);
drawTextOnPath
沿著一條 Path 來繪制文字
text 為所需要繪制的文字
path 為文字的路徑
hOffset 文字相對于路徑的水平偏移量,用于調(diào)整文字的位置
vOffset 文字相對于路徑豎直偏移量,用于調(diào)整文字的位置
值得注意的是,在繪制 Path 的時候,應該在拐彎處使用圓角,這樣文字顯示時更舒服
大致講解,后面會重點講解。
Rect src
Rect dst
其中src和dst這兩個矩形區(qū)域是用來做什么的?
Rect src:指定繪制圖片的區(qū)域
Rect dst或RectF dst:指定圖片在屏幕上的繪制(顯示)區(qū)域
首先指定圖片區(qū)域,然后指定繪制圖片的區(qū)域。
android繪圖之Paint(1)
android繪圖之Canvas基礎(chǔ)(2)
Android繪圖之Path(3)
Android繪圖之drawText繪制文本相關(guān)(4)
Android繪圖之Canvas概念理解(5)
Android繪圖之Canvas變換(6)
Android繪圖之Canvas狀態(tài)保存和恢復(7)
Android繪圖之PathEffect (8)
Android繪圖之LinearGradient線性漸變(9)
Android繪圖之SweepGradient(10)
Android繪圖之RadialGradient 放射漸變(11)
Android繪制之BitmapShader(12)
Android繪圖之ComposeShader,PorterDuff.mode及Xfermode(13)
Android繪圖之drawText,getTextBounds,measureText,FontMetrics,基線(14)
Android繪圖之貝塞爾曲線簡介(15)
Android繪圖之PathMeasure(16)
Android 動態(tài)修改漸變 GradientDrawable
LinearGradient 和 SweepGradient,這次講解RadialGradient;
RadialGradient被稱為放射漸變,就是從中心向外圓形漸變。
兩個構(gòu)造函數(shù),第一個構(gòu)造函數(shù)可以實現(xiàn)兩種顏色的漸變,第二個構(gòu)造函數(shù)可以實現(xiàn)多個顏色的漸變。
參數(shù)說明:
centerX ,centerY:shader的中心坐標,開始漸變的坐標。
radius:漸變的半徑,
centerColor,edgeColor:中心點漸變顏色,邊界的漸變顏色,
colors:漸變顏色數(shù)組,
stoops:漸變位置數(shù)組,類似掃描漸變的positions數(shù)組,取值[0,1],中心點為0,半徑到達位置為1.0f,
tileMode:shader未覆蓋以外的填充模式。
構(gòu)造函數(shù):
RadialGradient(float centerX, float centerY, float radius, @ColorInt int centerColor, @ColorInt int edgeColor, @NonNull TileMode tileMode);
提供中心坐標,半徑,顏色值,TileMode
Stops數(shù)組取值為[0-1],一般為從小到大,表示每個位置對應的顏色值,如果stops不為null,colors必須和stops一一對應,否則可能導致崩潰,如果stops為null,各顏色從中心到邊界線性漸變。
stops數(shù)組為null,四種顏色線性漸變:
stops數(shù)組不為null:
如果數(shù)組多余顏色個數(shù):
大致做個小例子,如果需要線上使用需要考慮很多問題,類似ondraw最好不要聲明對象等:
替換為多顏色 private int[] colors = {Color.YELLOW, Color.RED, Color.BLUE, Color.GREEN};
android繪圖之Paint(1)
android繪圖之Canvas基礎(chǔ)(2)
Android繪圖之Path(3)
Android繪圖之drawText繪制文本相關(guān)(4)
Android繪圖之Canvas概念理解(5)
Android繪圖之Canvas變換(6)
Android繪圖之Canvas狀態(tài)保存和恢復(7)
Android繪圖之PathEffect (8)
Android繪圖之LinearGradient線性漸變(9)
Android繪圖之SweepGradient(10)
Android繪圖之RadialGradient 放射漸變(11)
Android繪制之BitmapShader(12)
Android繪圖之ComposeShader,PorterDuff.mode及Xfermode(13)
Android繪圖之drawText,getTextBounds,measureText,FontMetrics,基線(14)
Android繪圖之貝塞爾曲線簡介(15)
Android繪圖之PathMeasure(16)
Android 動態(tài)修改漸變 GradientDrawable
Paint 講解開篇
android中繪制特定圖案類似顯示中的繪畫需要畫筆和畫紙,為此android提供了Paint和Canvas。
Paint和Canvas分別代表畫筆和畫布。
The Paint class holds the style and color information about how to draw geometries, text and bitmaps.
Paint類似畫筆,保存著繪制文本,圖形,圖片的樣式和顏色信息。(顏色,寬度,粗細,透明度,字體樣式,字體大小)。
提供了三種初始化方法:
Paint(),
Paint(int flags),
Paint(Paint paint)。
第二種構(gòu)造函數(shù)傳入了flag,相當于無參構(gòu)造之后調(diào)用了setFlags(int),有很多種flag,這里舉個例子UNDERLINE_TEXT_FLAG(其他的flag見developers文檔),繪制文字時會有下劃線,多個flag或可以達到設(shè)置多個flag的目的。
Paint常用的設(shè)置函數(shù):
setAlpha()透明度
setAntiAlias()抗鋸齒
setColor(),setARGB()設(shè)置顏色
setStyle(Paint.Style style) 設(shè)置填充樣式
setStrokeCap(Paint.Cap cap) 畫筆的樣式(落筆,收筆時)
setStrokeJoin(Paint.Join join)連接點的樣式
setStrokeWidth(float width)設(shè)置畫筆寬度
setShadowLayer(float radius, float dx, float dy, int shadowColor) 設(shè)置陰影
setTextSize(float textSize) 字體大小
setTextAlign(Paint.Align.RIGHT)設(shè)置字體對齊方式
后期講解:
setColorFilter(ColorFilter filter) 設(shè)置顏色過濾
setUnderlineText(true) 下劃線
setPathEffect() 設(shè)置路徑效果
setTypeface() 設(shè)置字體風格
setFilterBitmap() 設(shè)置圖片過濾
setXfermode(Xfermode xfermode) xfermode設(shè)置圖像混合模式
setShader(Shader shader) 設(shè)置shader包括漸變shader,圖片shader
。。。。。。。。
setAlpha(int a) 設(shè)置透明度,a 值得范圍 [0..255],僅僅改變setColor()的顏色的透明度,不改變顏色值,0是完全透明,255完全不透明。
注意:需要先調(diào)用setColor(),再調(diào)用setAlpha才會生效,否則將會被覆蓋,因為setColor中包含了alpha。
setStyle設(shè)置填充樣式,所謂填充的樣式指只繪制線或者繪制同時填充:
Paint.Style.FILL 填充內(nèi)部,會把閉合區(qū)域填充顏色
Paint.Style.FILL_AND_STROKE 填充內(nèi)部和描邊
Paint.Style.STROKE 僅描邊,僅僅繪制邊界
默認FILL 填充內(nèi)部,
STROKE樣式
FILL_AND_STROKE樣式和FILL 類似但當畫筆寬度很寬時會產(chǎn)生不同
setColor,setARGB設(shè)置顏色,設(shè)置畫筆的顏色,setARGB()參數(shù)范圍0-255。
setAntiAlias(boolean) 抗鋸齒,使邊界更順滑(有些屏幕分辨率不高,導致像素點比較大,繪制邊界可能會有顆粒感,打開抗鋸齒邊界顆粒感會減少)。
setTextSize(float textSize) 字體大小,單位是px,如果是dp要注意轉(zhuǎn)換。
setTextAlign(Paint.Align.RIGHT)設(shè)置字體對齊方式,根據(jù)下面的實例可以,對齊方式基于開始繪制的點。
一起講解:
mPaint.setTextSize(50);
mPaint.setTextAlign(Paint.Align.LEFT);
canvas.drawText("android Paint 學習 LEFT",300,300,mPaint);
mPaint.setTextAlign(Paint.Align.CENTER);
canvas.drawText("android Paint 學習 CENTER",300,400,mPaint);
mPaint.setTextAlign(Paint.Align.RIGHT);
canvas.drawText("android Paint 學習 RIGHT",300,500,mPaint);
setTextAlign對齊是相對于開始繪制的坐標點。
setShadowLayer(float radius, float dx, float dy, int shadowColor) 設(shè)置陰影
mPaint.setShadowLayer(10,-20,30,Color.GRAY);
canvas.drawText("android Paint 學習 CENTER",getWidth()/2,450,mPaint);
setShadowLayer(float radius, float dx, float dy, int shadowColor)
Radius設(shè)置角度,dx,dy控制字體的上下左右出現(xiàn),有正負之分,dx的正負代表右左,dy的正負代表下上。
setStrokeCap(Paint.Cap.ROUND)
設(shè)置繪制起始點和結(jié)尾點的樣式,
三種樣式ROUND,BUTT,SQUARE
Cap.ROUND(圓形)、Cap.SQUARE(方形)、Paint.Cap.BUTT(無)
ROUND:
BUTT和SQUARE差別不大:
setStrokeJoin(Paint.Join join),設(shè)置繪制path連接點的樣式
mPaint.setStrokeJoin(Paint.Join.ROUND);
// mPaint.setStrokeJoin(Paint.Join.MITER);
// mPaint.setStrokeJoin(Paint.Join.BEVEL);
Join.MITER(結(jié)合處為銳角)、
Join.Round(結(jié)合處為圓弧)、
Join.BEVEL(結(jié)合處為直線)
ROUND樣式:
MITER樣式:
BEVEL樣式:
setXfermode(Xfermode xfermode) xfermode設(shè)置圖像混合模式
setShader(Shader shader) 設(shè)置shader包括漸變shader,圖片shader
還有很多其他屬性會后續(xù)講解。
android繪圖之Paint(1)
android繪圖之Canvas基礎(chǔ)(2)
Android繪圖之Path(3)
Android繪圖之drawText繪制文本相關(guān)(4)
Android繪圖之Canvas概念理解(5)
Android繪圖之Canvas變換(6)
Android繪圖之Canvas狀態(tài)保存和恢復(7)
Android繪圖之PathEffect (8)
Android繪圖之LinearGradient線性漸變(9)
Android繪圖之SweepGradient(10)
Android繪圖之RadialGradient 放射漸變(11)
Android繪制之BitmapShader(12)
Android繪圖之ComposeShader,PorterDuff.mode及Xfermode(13)
Android繪圖之drawText,getTextBounds,measureText,FontMetrics,基線(14)
Android繪圖之貝塞爾曲線簡介(15)
Android繪圖之PathMeasure(16)
Android 動態(tài)修改漸變 GradientDrawable
網(wǎng)站名稱:android繪圖,android繪圖原理
網(wǎng)站鏈接:http://chinadenli.net/article16/dsgcigg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供域名注冊、外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站改版、自適應網(wǎng)站、云服務器、網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)