日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android学习笔记(三):android画图之paint

發布時間:2025/1/21 Android 87 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android学习笔记(三):android画图之paint 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

? ?* Paint類介紹 ?
???? *? ?
???? * Paint即畫筆,在繪圖過程中起到了極其重要的作用,畫筆主要保存了顏色, ?
???? * 樣式等繪制信息,指定了如何繪制文本和圖形,畫筆對象有很多設置方法, ?
???? * 大體上可以分為兩類,一類與圖形繪制相關,一類與文本繪制相關。??????? ?
???? *? ?
???? * 1.圖形繪制 ?
???? * setARGB(int a,int r,int g,int b); ?
???? * 設置繪制的顏色,a代表透明度,r,g,b代表顏色值。 ?
???? *? ?
???? * setAlpha(int a); ?
???? * 設置繪制圖形的透明度。 ?
???? *? ?
???? * setColor(int color); ?
???? * 設置繪制的顏色,使用顏色值來表示,該顏色值包括透明度和RGB顏色。 ?
???? *? ?
??? * setAntiAlias(boolean aa); ?
???? * 設置是否使用抗鋸齒功能,會消耗較大資源,繪制圖形速度會變慢。 ?
???? *? ?
???? * setDither(boolean dither); ?
???? * 設定是否使用圖像抖動處理,會使繪制出來的圖片顏色更加平滑和飽滿,圖像更加清晰 ?
???? *? ?
???? * setFilterBitmap(boolean filter); ?
???? * 如果該項設置為true,則圖像在動畫進行中會濾掉對Bitmap圖像的優化操作,加快顯示 ?
???? * 速度,本設置項依賴于dither和xfermode的設置 ?
???? *? ?
???? * setMaskFilter(MaskFilter maskfilter); ?
???? * 設置MaskFilter,可以用不同的MaskFilter實現濾鏡的效果,如濾化,立體等?????? *? ?
???? * setColorFilter(ColorFilter colorfilter); ?
???? * 設置顏色過濾器,可以在繪制顏色時實現不用顏色的變換效果 ?
???? *? ?
???? * setPathEffect(PathEffect effect); ?
???? * 設置繪制路徑的效果,如點畫線等 ?
???? *? ?
???? * setShader(Shader shader); ?
???? * 設置圖像效果,使用Shader可以繪制出各種漸變效果 ?
???? * ?
???? * setShadowLayer(float radius ,float dx,float dy,int color); ?
???? * 在圖形下面設置陰影層,產生陰影效果,radius為陰影的角度,dx和dy為陰影在x軸和y軸上的距離,color為陰影的顏色 ?
???? *? ?
???? * setStyle(Paint.Style style); ?
???? * 設置畫筆的樣式,為FILL,FILL_OR_STROKE,或STROKE ?
???? *? ?
???? * setStrokeCap(Paint.Cap cap); ?
???? * 當畫筆樣式為STROKE或FILL_OR_STROKE時,設置筆刷的圖形樣式,如圓形樣式 ?
???? * Cap.ROUND,或方形樣式Cap.SQUARE ?
???? *? ?
???? * setSrokeJoin(Paint.Join join); ?
???? * 設置繪制時各圖形的結合方式,如平滑效果等 ?
???? *? ?
???? * setStrokeWidth(float width); ?
???? * 當畫筆樣式為STROKE或FILL_OR_STROKE時,設置筆刷的粗細度 ?
???? *? ?
???? * setXfermode(Xfermode xfermode); ?
???? * 設置圖形重疊時的處理方式,如合并,取交集或并集,經常用來制作橡皮的擦除效果 ?
???? *? ?
???? * 2.文本繪制 ?
???? * setFakeBoldText(boolean fakeBoldText); ?
???? * 模擬實現粗體文字,設置在小字體上效果會非常差 ?
???? *? ?
???? * setSubpixelText(boolean subpixelText); ?
???? * 設置該項為true,將有助于文本在LCD屏幕上的顯示效果 ?
???? *? ?
???? * setTextAlign(Paint.Align align); ?
???? * 設置繪制文字的對齊方向 ?
???? *? ?
?? * setTextScaleX(float scaleX); ?
??? * 設置繪制文字x軸的縮放比例,可以實現文字的拉伸的效果 ?
???? *? ?
???? * setTextSize(float textSize); ?
???? * 設置繪制文字的字號大小 ?
???? *? ?
???? * setTextSkewX(float skewX); ?
???? * 設置斜體文字,skewX為傾斜弧度 ?
???? *? ?
???? * setTypeface(Typeface typeface); ?
???? * 設置Typeface對象,即字體風格,包括粗體,斜體以及襯線體,非襯線體等 ?
???? *? ?
???? * setUnderlineText(boolean underlineText); ?
???? * 設置帶有下劃線的文字效果 ?
???? *? ?
???? * setStrikeThruText(boolean strikeThruText); ?
???? * 設置帶有刪除線的效果 ?
???? *? ?
????

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 private class MyView2 extends View { ??? ???????? public MyView2(Context context) { ??? ???????????? super (context); ??? ???????? } ??? ???????? @Override ???????? protected void onDraw(Canvas canvas) ??? ???????? { ??? ???????????? super .onDraw(canvas); ??? ???????????? canvas.drawColor(Color.WHITE); ??? ???????????? Paint paint = new Paint(); ??? ???????????? paint.setAntiAlias( true ); ??? ???????????? paint.setColor(Color.RED); ??? ???????????? paint.setStyle(Paint.Style.STROKE); //設置為空心 ??? ???????????? paint.setStrokeWidth(3); ??? ???????????? canvas.drawCircle(40, 40, 30, paint); ??? ???????????? canvas.drawRect(10, 90, 70, 150, paint); ??? ???????????? canvas.drawRect(10, 170, 70, 200, paint); ??? ???????????? canvas.drawOval( new RectF(10, 220, 70, 250), paint); ??? ???????????? Path path = new Path(); //三角形 ??? ???????????? path.moveTo(10, 330); ??? ???????????? path.lineTo(70, 330); ??? ???????????? path.lineTo(40, 270); ??? ???????????? path.close(); ??? ???????????? canvas.drawPath(path, paint); ??? ???????????? Path path1 = new Path(); //梯形 ??? ???????????? path1.moveTo(10, 410); //繪畫基點 ??? ???????????? path1.lineTo(70, 410); ??? ???????????? path1.lineTo(55, 350); ??? ???????????? path1.lineTo(25, 350); ??? ???????????? path1.close(); //把開始的點和最后的點連接在一起,構成一個封閉圖形 ???????????? /* ????????????? * 最重要的就是movtTo和close,如果是Style.FILL的話,不設置close,也沒有區別,可是如果是STROKE模式, ????????????? * 如果不設置close,圖形不封閉。 ????????????? * ????????????? * 當然,你也可以不設置close,再添加一條線,效果一樣。 ????????????? */ ???????????? canvas.drawPath(path1, paint); ??????????????? ??????????????? ??????????????? ??????????????? ???????????? ///第二列 ??? ???????????? paint.setColor(Color.BLUE); ??? ???????????? paint.setStyle(Paint.Style.FILL); //設置實心 ??? ???????????? canvas.drawCircle(120, 40, 30, paint); ??? ???????????? canvas.drawRect(90, 90, 150, 150, paint); ??? ???????????? canvas.drawRect(90, 170, 150, 200, paint); ??? ???????????? RectF re2 = new RectF(90, 220, 150, 250); ??? ???????????? canvas.drawOval(re2, paint); ??? ???????????? Path path2 = new Path(); ??? ???????????? path2.moveTo(90, 330); ??? ???????????? path2.lineTo(150, 330); ??? ???????????? path2.lineTo(120, 270); ??? ???????????? path2.close(); ??? ???????????? canvas.drawPath(path2, paint); ??? ???????????? Path path3 = new Path(); ??? ???????????? path3.moveTo(90, 410); ??? ???????????? path3.lineTo(150, 410); ??? ???????????? path3.lineTo(135, 350); ??? ???????????? path3.lineTo(105, 350); ??? ???????????? path3.close(); ??? ???????????? canvas.drawPath(path3, paint); ??????????????? ??????????????? ???????????? 第三列 ??????????????? ???????????? /* ????????????? * LinearGradient shader = new LinearGradient(0, 0, endX, endY, new ????????????? * int[]{startColor, midleColor, endColor},new float[]{0 , 0.5f, ????????????? * 1.0f}, TileMode.MIRROR); ????????????? * 參數一為漸變起初點坐標x位置,參數二為y軸位置,參數三和四分辨對應漸變終點 ????????????? * 其中參數new int[]{startColor, midleColor,endColor}是參與漸變效果的顏色集合, ????????????? * 其中參數new float[]{0 , 0.5f, 1.0f}是定義每個顏色處于的漸變相對位置, 這個參數可以為null,如果為null表示所有的顏色按順序均勻的分布 ????????????? */ ???????????? Shader mShader = new LinearGradient(0, 0, 100, 100, ??? ???????????? new int[] { Color.RED, Color.GREEN, Color.BLUE, Color.YELLOW }, ??? ???????????? null , Shader.TileMode.REPEAT); ??? ???????????? // Shader.TileMode三種模式 ??? ???????????? // REPEAT:沿著漸變方向循環重復 ??? ???????????? // CLAMP:如果在預先定義的范圍外畫的話,就重復邊界的顏色 ??? ???????????? // MIRROR:與REPEAT一樣都是循環重復,但這個會對稱重復 ??? ???????????? paint.setShader(mShader); // 用Shader中定義定義的顏色來話 ??? ???????????? canvas.drawCircle(200, 40, 30, paint); ??? ???????????? canvas.drawRect(170, 90, 230, 150, paint); ??? ???????????? canvas.drawRect(170, 170, 230, 200, paint); ??? ???????????? RectF re3 = new RectF(170, 220, 230, 250); ??? ???????????? canvas.drawOval(re3, paint); ??? ???????????? Path path4 = new Path(); ??? ???????????? path4.moveTo(170, 330); ??? ???????????? path4.lineTo(230, 330); ??? ???????????? path4.lineTo(200, 270); ??? ???????????? path4.close(); ??? ???????????? canvas.drawPath(path4, paint); ??? ???????????? Path path5 = new Path(); ??? ???????????? path5.moveTo(170, 410); ??? ???????????? path5.lineTo(230, 410); ??? ???????????? path5.lineTo(215, 350); ??? ???????????? path5.lineTo(185, 350); ??? ???????????? path5.close(); ??? ???????????? canvas.drawPath(path5, paint); ??????????????? ???????????? //第4列 ??? ???????????? paint.setTextSize(24); ??? ???????????? canvas.drawText( "圓形" , 240, 50, paint); ??? ???????????? canvas.drawText( "正方形" , 240, 120, paint); ??? ???????????? canvas.drawText( "長方形" , 240, 190, paint); ??? ???????????? canvas.drawText( "橢圓形" , 240, 250, paint); ??? ???????????? canvas.drawText( "三角形" , 240, 320, paint); ??? ???????????? canvas.drawText( "梯形" , 240, 390, paint); ??? ???????? } ??? ???? }

注:文章內容來源網上

轉載于:https://my.oschina.net/yolinfeng/blog/408090

總結

以上是生活随笔為你收集整理的Android学习笔记(三):android画图之paint的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 1769国产| 全部免费毛片在线播放高潮 | 免费在线看视频 | 国产黄色片在线免费观看 | 色翁荡息又大又硬又粗又爽 | 一级黄色特级片 | 国产精品久久久久久三级 | 91极品国产| 国产青草视频在线观看 | 国产高清自拍一区 | 黄在线免费观看 | 色婷婷精品国产一区二区三区 | 国产精品一级片在线观看 | 久久人人爽人人爽人人 | 亚洲三页 | 国产专区第一页 | 91久久精品美女高潮 | 神马影院一区二区三区 | 私人毛片 | 草草草在线 | 一区二区三区在线观 | 麻豆视频网站入口 | 成人观看 | 男生女生搞鸡视频 | 美女隐私直播 | 久久久成人免费视频 | 一区二区三区视频 | 久久成年网 | 毛片在哪里看 | 噜噜噜av | 天天干天天舔天天操 | 一本色道久久加勒比精品 | 亚洲婷婷网 | 91久久超碰| av网站在线免费播放 | 欧美色炮| 日韩国产小视频 | 一区二区三区国产在线观看 | 97毛片| 性做久久久久久久久 | 国模人体一区二区 | 老司机深夜网站 | 91porn九色| 成人在线观 | 夜间福利在线观看 | 久热伊人 | 久久伊人精品视频 | 在线视频亚洲欧美 | 久久午夜场 | 色综合天天综合网天天看片 | 一级黄色片在线观看 | 欧美日韩视频 | 国产一区二区片 | 久久精品系列 | 中文字幕人妻丝袜二区 | 日韩一三区| 日本变态折磨凌虐bdsm在线 | 日韩欧美精品在线播放 | 国产伦精品一区二区三区四区免费 | 亚洲无码精品一区二区三区 | 91在线观看视频 | 青草综合 | 久久亚洲天堂 | 国产又粗又长又黄视频 | 丁香激情五月 | 国产激情精品一区二区三区 | 草一色| 色狗网站| 国产午夜啪啪 | 久久久久人妻一区 | 人人艹人人爽 | 亚洲爱爱视频 | 污视频导航| 特级西西444www大精品视频免费看 | 日韩视频免费观看 | 在线看污片 | 欧美 日韩 国产 亚洲 色 | 污污污污污污www网站免费 | 精品国产无码在线观看 | 麻豆亚洲av成人无码久久精品 | 免费看a | 日韩一区欧美一区 | 欧美另类videosbestsex | 高清视频在线播放 | 欧美成人精品 | 国产精品久久久久久久久久久久久久久久久久 | 打屁股视频网站 | 成人免费网站 | 美日韩丰满少妇在线观看 | 99日韩| 午夜精品美女久久久久av福利 | www九九热| 免费又黄又爽又色的视频 | 欧美性理论片在线观看片免费 | 欧美日韩亚洲国产一区 | 五月天色丁香 | 久草影视在线 | 在线观看免费观看 | 在线观看国产免费视频 |