中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

甘肅省住房和城鄉(xiāng)建設廳注冊中心網(wǎng)站首頁交換鏈接適用于哪些網(wǎng)站

甘肅省住房和城鄉(xiāng)建設廳注冊中心網(wǎng)站首頁,交換鏈接適用于哪些網(wǎng)站,珠海網(wǎng)站設計,做一組靜態(tài)頁面網(wǎng)站多少錢Paint部分常用的方法1、實例化之后Paint的基本配置2、shader 和 ShadowLayer3、pathEffect4、maskFilter5、colorFilter6、xfermode1、實例化之后Paint的基本配置 Paint.Align Align指定drawText如何將其文本相對于[x,y]坐標進行對齊。默認為LEFTPaint.Cap Cap指定了筆畫線和路…

Paint部分常用的方法

  • 1、實例化之后Paint的基本配置
  • 2、shader 和 ShadowLayer
  • 3、pathEffect
  • 4、maskFilter
  • 5、colorFilter
  • 6、xfermode

1、實例化之后Paint的基本配置

  • Paint.Align
    Align指定drawText如何將其文本相對于[x,y]坐標進行對齊。默認為LEFT
  • Paint.Cap
    Cap指定了筆畫線和路徑的開始和結束的處理方法 [BUTT(筆畫以路徑結束,并且不超出路徑),ROUND(筆畫凸出成半圓形,圓心在路徑的末端),SQUARE(筆畫突出為一個正方形,中心位于路徑的末端)]
  • Paint.FontMetrics
    類,它描述給定文本大小下字體的各種指標。記住,Y值向下增大,所以這些值是正的,而距離向上的值是負的。這個類由getFontMetrics()返回。
  • Paint.Join
    連接指定了線條和曲線段在描邊路徑上連接的處理。默認為MITER。
  • Paint.Style
    樣式指定所繪制的原語是填充的、描邊的,還是兩者都有(用相同的顏色)。默認為FILL
  • isAntiAlias抗鋸齒
  • isDither防抖動
  • color畫筆的顏色
  • strokeWidth畫筆的寬
    這里省略其他配置…

2、shader 和 ShadowLayer

簡單列子實現(xiàn)效果
在這里插入圖片描述

列1

private fun jcPaint(canvas: Canvas?) {Paint().apply {setShadowLayer(12f, 5f, 5f, Color.RED)isLinearText = trueval array = IntArray(2)array[0] = Color.YELLOWarray[1] = Color.BLUE/*實現(xiàn)線性顏色效果*/shader = LinearGradient(0f,0f,100f,100f,array,null,Shader.TileMode.MIRROR)color = Color.REDstrokeWidth = 10fstyle = Paint.Style.STROKEstrokeCap = Paint.Cap.BUTTstrokeJoin = Paint.Join.ROUND //連接處的處理canvas?.drawRect(Rect(10, 10, 400, 400), this)val text1 = "style - Paint.Style.STROKE"val text2 = "Cap - Paint.Cap.BUTT"val text3 = "Join連接處使用圓角 - Paint.Join.ROUNDJoin"strokeWidth = 2ftextSize = 30fcolor = Color.BLUEstyle = Paint.Style.FILL_AND_STROKEPaint.ANTI_ALIAS_FLAG/*** 繪制陰影*/this.setShadowLayer(2f, 0f, 5f, Color.BLUE)canvas?.drawText(text1, 20f, 200f, this)val tW = this.measureText(text1)Log.v("[measureText]", "tw = $tW")canvas?.drawText(text2, 20f, 300f, this)canvas?.drawText(text3, 20f, 400f, this)}}

列2

    private fun shader(canvas: Canvas?) {/***  圍棋子  黑色棋子*/Paint(Paint.ANTI_ALIAS_FLAG).apply {color = Color.REDstrokeWidth = 10fstyle = Paint.Style.FILLstrokeCap = Paint.Cap.BUTT //結尾處strokeJoin = Paint.Join.ROUND //連接處的處理val top = 600fval left = 30fval radius = 100fshader = RadialGradient(left + radius, top ,radius+radius*1/4,IntArray(2).apply {this[0] = Color.WHITEthis[1] = Color.BLACK},null,Shader.TileMode.CLAMP)/*** 添加陰影*/setShadowLayer(6f, 6f, 6f, Color.parseColor("#AACCCCCC"))canvas?.drawCircle(left + radius, top, radius, this)shader = SweepGradient(0F,0f, listOf<Int>(Color.YELLOW,Color.RED).toIntArray(),null)canvas?.drawCircle(left + radius * 3, top, radius, this)
//
///*** 實現(xiàn)線性顏色效果*/shader = LinearGradient(0f,0f,100f,100f,listOf<Int>(Color.GREEN,Color.BLUE).toIntArray(),null,Shader.TileMode.MIRROR)canvas?.drawCircle(left + radius * 5, top, radius, this)val b = BitmapFactory.decodeResource(context.resources,R.mipmap.aa)shader = BitmapShader(b,Shader.TileMode.MIRROR,Shader.TileMode.MIRROR)canvas?.drawCircle(left + radius * 7, top, radius, this)}}

3、pathEffect

1、DiscretePathEffect() 將路徑切成segmentLength的行,隨機偏離原路徑。
2、SumPathEffect() 構造一個PathEffect,其效果是按順序應用兩個效果。(例如,第一個(路徑)+第二個(路徑))
3、DashPathEffect() interval數(shù)組必須包含偶數(shù)個條目(>=2),偶數(shù)索引指定“開”間隔,奇數(shù)索引指定“關”間隔。Phase是interval數(shù)組的偏移量(對所有interval的和取mod)。interval數(shù)組控制破折號的長度。油漆的strokeWidth控制了破折號的厚度。注意:這個patheeffect只影響畫風設置為STROKE或FILL_AND_STROKE的繪圖。如果繪圖是用style == FILL完成的,它將被忽略。
參數(shù)1:間隔-開和關距離的數(shù)組
參數(shù)2:相位偏移到間隔數(shù)組中
4、CornerPathEffect()通過將線段之間的任何銳角替換為指定半徑的圓角,轉換所繪制的幾何圖形(STROKE或FILL樣式)。
參數(shù):半徑-線段之間的圓角。
5、ComposePathEffect() 構造一個PathEffect,其效果是首先應用內(nèi)部效果和外部PathEffect(例如outer(inner(path)))。
6、PathDashPathEffect()用指定的形狀對所繪制的路徑進行沖壓。這只適用于當油漆樣式為STROKE或STROKE_AND_FILL時的繪圖。如果油漆的樣式是FILL,那么這個效果將被忽略。油漆的描邊寬度不會影響結果。

效果:
在這里插入圖片描述

private fun pathEffect(canvas: Canvas?) {Paint().apply {color = Color.BLUEstrokeWidth = 5fstrokeJoin = Paint.Join.ROUNDstyle = Paint.Style.STROKEpathEffect = DiscretePathEffect(10f,20f)canvas?.drawPath(Path().apply {moveTo(0f,200f)lineTo(300f,100f)lineTo(200f,200f)lineTo(0f,200f)},this)pathEffect =  DashPathEffect(FloatArray(2).apply {this[0] = 10fthis[1] = 5f },10f)canvas?.drawPath(Path().apply {moveTo(250f,200f)lineTo(300f,100f)lineTo(500f,200f)lineTo(250f,200f)},this)pathEffect = SumPathEffect( DiscretePathEffect(10f,20f),DashPathEffect(FloatArray(2).apply {this[0] = 10fthis[1] = 5f },10f))canvas?.drawPath(Path().apply {moveTo(0F,400f)lineTo(200f,300f)lineTo(100f,400f)lineTo(0F,400f)},this)pathEffect = CornerPathEffect(15f)canvas?.drawPath(Path().apply {moveTo(250f,400f)lineTo(300f,300f)lineTo(500f,400f)lineTo(250f,400f)},this)pathEffect = ComposePathEffect( DiscretePathEffect(10f,20f),DashPathEffect(FloatArray(2).apply {this[0] = 10fthis[1] = 5f },10f))canvas?.drawPath(Path().apply {moveTo(550f,400f)lineTo(600f,300f)lineTo(800f,400f)lineTo(550f,400f)},this)pathEffect = PathDashPathEffect( Path().apply {moveTo(0f,8f)lineTo(3f,4f)lineTo(8f,8f)lineTo(0f,8f)},5f,10f,PathDashPathEffect.Style.TRANSLATE)canvas?.drawPath(Path().apply {moveTo(0f,700f)lineTo(300f,500f)lineTo(700f,700f)lineTo(0f,700f)},this)}}

4、maskFilter

1、BlurMaskFilter
這需要一個蒙版,并通過指定的半徑模糊其邊緣。是否包含原始蒙版,以及模糊是在原始蒙版的邊界外、內(nèi)還是跨界,都由blur enum控制。
2、EmbossMaskFilter
創(chuàng)建一個浮雕蒙版過濾器
已經(jīng)被棄用 這個子類不受支持,不應該被實例化。

  private fun maskFilter(canvas: Canvas?) {Paint().apply {color = Color.REDmaskFilter = BlurMaskFilter(20F,BlurMaskFilter.Blur.SOLID)val b0 = BitmapFactory.decodeResource(context.resources, R.mipmap.aa)canvas?.drawBitmap(b0,30f,800f,this)maskFilter = EmbossMaskFilter(listOf<Float>(30f,30f,30f).toFloatArray(),0.2F,60F,10F)val b = BitmapFactory.decodeResource(context.resources, R.mipmap.aa)canvas?.drawBitmap(b,30f,800f+b0.height,this)}}

5、colorFilter

ColorFilter主要用來處理顏色,這里將講解它的三個子類,ColorMatrixColorFilter,
LightingColorFilter以及PorterDuffColorFilter。
1、ColorMatrixColorFilte 是一種通過4x5顏色矩陣轉換顏色的顏色過濾器。這個濾鏡可以用來改變像素的飽和度,從YUV轉換為RGB等。
參見:ColorMatrix

RGB和Alpha的終值計算方法如下: Red通道終值= a[0] * srcR + a[1] * srcG + a[2] * srcB +
a[3] * srcA + a[4] Green通道終值= a[5] * srcR + a[6] * srcG + a[7] * srcB

  • a[8] * srcA + a[9] Blue通道終值= a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] * srcA + a[14] Alpha通道終值= a[15]*srcR+a[16]*srcG + a[17] *
    srcB + a[18] * srcA + a[19]

備注: srcR為原圖Red通道值,srcG為原圖Green通道值,srcB為原圖Blue通道值,srcA為原圖Alpha通道值。
每個通道的源值和終值都在0到255的范圍內(nèi)。即使計算結果大于255或小于0,值都將被限制在0到255的范圍內(nèi)。

2、LightingColorFilter是一個顏色濾鏡,可以用來模擬簡單的照明效果。LightingColorFilter由兩個參數(shù)定義,一個用于將源顏色相乘(稱為colorMultiply),另一個用于向源顏色添加(稱為colorAdd)。alpha通道不受此顏色濾鏡的影響。給定一個源顏色RGB,得到的R’ g ’ b '顏色計算如下:

R’ = R * colorMultiply.R + colorAdd.R
G’ = G * colorMultiply.G + colorAdd.G
B’ = B * colorMultiply.B + colorAdd.B

效果:
在這里插入圖片描述
3、PorterDuffColorFilter 是一種顏色濾鏡,可用于使用單一顏色和特定波特-達夫復合模式對源像素進行著色。
效果:
在這里插入圖片描述

    private fun colorFilter(canvas: Canvas?) {//1、ColorMatrixColorFilterPaint().apply {val MATRIX = floatArrayOf(0.3f, 0f, 0f, 0f, 0f,0f, 0.5f, 0f, 0f, 0f,0f, 0f, 0.5f, 0f, 0f,0f, 0f,   0f, 1f, 0f)val bitmap = BitmapFactory.decodeResource(context.resources, R.mipmap.aa)canvas?.drawBitmap(bitmap, 100F, 0F, this);val filter = ColorMatrixColorFilter(MATRIX)colorFilter = filtercanvas?.drawBitmap(bitmap, 100F, 500F, this)/*方式1*/val colorMatrix = ColorMatrix()colorMatrix.setSaturation(0f)colorFilter = ColorMatrixColorFilter(colorMatrix)canvas?.drawBitmap(bitmap, 100F, 1000F, this)}//2、LightingColorFilterPaint().apply {val bitmap = BitmapFactory.decodeResource(context.resources, R.mipmap.aa)canvas?.drawBitmap(bitmap, 100F, 0F, this);val filter = LightingColorFilter(100,0)colorFilter = filtercanvas?.drawBitmap(bitmap, 100F, 500F, this)/*方式1*/colorFilter = LightingColorFilter(100,100)canvas?.drawBitmap(bitmap, 100F, 1000F, this)}//3、PorterDuffColorFilter 是一種顏色濾鏡,可用于使用單一顏色和特定波特-達夫復合模式對源像素進行著色。Paint().apply {val bitmap = BitmapFactory.decodeResource(context.resources, R.mipmap.aa)canvas?.drawBitmap(bitmap, 100F, 0F, this);val filter = PorterDuffColorFilter(Color.YELLOW,PorterDuff.Mode.DARKEN)colorFilter = filtercanvas?.drawBitmap(bitmap, 100F, 500F, this)}}

6、xfermode

在這里插入圖片描述
1、PorterDuffXfermode
專門實現(xiàn)Paint的轉移模式。參考PorterDuff的文檔。關于可用的alpha合成和混合模式的更多信息的模式enum。

效果
在這里插入圖片描述

例子

private fun xFerMode(canvas: Canvas) {/*** 創(chuàng)建一個新的層layer*/canvas.saveLayer(RectF(0f, 0f, canvas.width.toFloat(), canvas.height.toFloat()),Paint())Paint().apply {strokeWidth=5fstrokeCap = Paint.Cap.ROUNDstrokeJoin = Paint.Join.ROUNDstyle = Paint.Style.FILL_AND_STROKEcolor = Color.GREEN/*** 步驟1、繪制一個底層圓形圖形*/val radius = 100fval top = 1200fval scr = Bitmap.createBitmap(radius.toInt()*2, radius.toInt()*2,Bitmap.Config.ARGB_8888)Canvas(scr).apply {drawBitmap(scr,0f,0f,Paint())drawCircle(radius,radius,radius,Paint().apply {color = Color.RED})}canvas?.drawBitmap(scr,0f,top,Paint())/*** 1、PorterDuffXfermode*/xfermode = PorterDuffXfermode(PorterDuff.Mode.MULTIPLY)/*** 步驟2、繪制上層圖片*/val bit = BitmapFactory.decodeResource(context.resources,R.mipmap.aa)canvas?.drawBitmap(bit,radius,top+radius,this)}}
http://www.risenshineclean.com/news/1877.html

相關文章:

  • 湖南網(wǎng)站建設小公司排名廣州網(wǎng)站優(yōu)化外包
  • 石家莊企業(yè)網(wǎng)站制作上海網(wǎng)絡推廣優(yōu)化公司
  • 成都網(wǎng)站建設小程序360關鍵詞指數(shù)查詢
  • 手機上做網(wǎng)站php網(wǎng)站制作企業(yè)有哪些
  • 1000M雙線網(wǎng)站空間中國搜索引擎大全
  • 南京教育網(wǎng)站開發(fā)線上電商怎么做
  • wordpress 建站 電子書網(wǎng)絡營銷的核心是什么
  • 網(wǎng)站負責人姓名找合作項目app平臺
  • 競價網(wǎng)站托管濟南seo優(yōu)化外包服務公司
  • 大紅門做網(wǎng)站怎樣交換友情鏈接
  • 做網(wǎng)站用什么配資電腦千鋒教育介紹
  • 做網(wǎng)站 大文件百度怎么創(chuàng)建自己的網(wǎng)站
  • 煙臺高新區(qū)建設局網(wǎng)站網(wǎng)絡廣告策劃
  • 無障礙網(wǎng)站建設方案近期重大新聞事件
  • 上海公司做網(wǎng)站的友情鏈接是什么
  • 網(wǎng)站定制微安電力案例臨沂色度廣告有限公司
  • 中國住建部網(wǎng)站查詢網(wǎng)寧波企業(yè)seo服務
  • win7 iis默認網(wǎng)站設置張北網(wǎng)站seo
  • 烏魯木齊網(wǎng)站制作百度廣告聯(lián)盟賺廣告費
  • 做五金的有哪些外貿(mào)網(wǎng)站媒體軟文推廣平臺
  • 網(wǎng)站開發(fā)聯(lián)系方式百度公司有哪些部門
  • 用前端做的比較酷的網(wǎng)站2022適合小學生的簡短新聞摘抄
  • 凡科可以做返利網(wǎng)站嗎移動廣告平臺
  • 手機網(wǎng)站小程序華為手機業(yè)務最新消息
  • 中港建設集團網(wǎng)站百度seo關鍵詞優(yōu)化電話
  • wordpress前臺注冊登陸網(wǎng)站優(yōu)化推廣排名
  • 網(wǎng)站制作公司哪兒濟南興田德潤有活動嗎微信軟文模板
  • 在哪些網(wǎng)站做推廣比較好百度搜索名字排名優(yōu)化
  • 做公益的網(wǎng)站有哪些淘寶店鋪運營
  • axure怎么做響應式網(wǎng)站優(yōu)化大師win10能用嗎