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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

drawroundrect java_Canvas中drawRoundRect()方法介绍

發布時間:2023/12/3 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 drawroundrect java_Canvas中drawRoundRect()方法介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

畫布Canvas的一個方法,繪制圓角矩形

逛CSDN的時候,無意看到之前關注的一個博主,出了一本書《Android自定義控件》,以前學自定義控件的時候,就是看他的文章的,這次出書了,再加上當當做活動,就買了一本,支持一下感謝他之前寫的文章。

周末翻了一下,看到Canvas章節的時候,不太好理解drawRoundRect(),繪制圓角矩陣的方法,碼一下代碼實踐出真知。為了更明顯看到坐標位置,用Sketch繪制一下,果然比自帶的畫圖工具好用(逃)

基本語法

public?void?drawRoundRect(RectF?rect,?float?rx,?float?ry,?Paint?paint)

功能:該方法用于在畫布上繪制圓角矩形,通過指定RectF對象以及圓角半徑來實現。

參數說明

float rx:生成圓角的橢圓的X軸半徑

float ry:生成圓角的橢圓的Y軸半徑

圓心位置

這個方法中,只需要設置圓角的X軸半徑和Y軸半徑,那圓心呢?

經過測試,發現圓心是動態變化的,看接下來代碼的分析

圓角半徑小于矩形寬的一半

override?fun?onDraw(canvas:?Canvas)?{

super.onDraw(canvas)

mPaint.color?=?Color.GRAY

mPaint.style?=?Paint.Style.STROKE

mPaint.strokeWidth?=?5f

//?繪制一個矩形作為背景,可以進行觀察

val?rect?=?RectF(0f,?0f,?800f,?600f)

canvas.drawRect(rect,?mPaint)

//?繪制圓角,半徑小于矩形寬的一半

mPaint.color?=?Color.BLACK

//?發現,繪制后,圓角弧度與

canvas.drawRoundRect(rect,?200f,?200f,?mPaint)

canvas.drawCircle(200f,?200f,?200f,?mPaint)

}

從圖片的圓角矩陣與圓重疊的部分,就可以看到弧度是怎樣繪制出來的

** 圓角半徑等于矩形寬的一半**

override?fun?onDraw(canvas:?Canvas)?{

super.onDraw(canvas)

mPaint.color?=?Color.GRAY

mPaint.style?=?Paint.Style.STROKE

mPaint.strokeWidth?=?5f

//?繪制一個矩形作為背景,可以進行觀察

val?rect?=?RectF(0f,?0f,?800f,?600f)

canvas.drawRect(rect,?mPaint)

//?繪制圓角,半徑小于矩形寬的一半

mPaint.color?=?Color.RED

//?發現,繪制后,圓角弧度與

canvas.drawRoundRect(rect,?300f,?300f,?mPaint)

canvas.drawCircle(300f,?300f,?300f,?mPaint)

}

圓角半徑大于矩形寬的一半

override?fun?onDraw(canvas:?Canvas)?{

super.onDraw(canvas)

mPaint.color?=?Color.GRAY

mPaint.style?=?Paint.Style.STROKE

mPaint.strokeWidth?=?5f

//?繪制一個矩形作為背景,可以進行觀察

val?rect?=?RectF(0f,?0f,?800f,?600f)

canvas.drawRect(rect,?mPaint)

//?繪制圓角,半徑小于矩形寬的一半

mPaint.color?=?Color.BLUE

canvas.drawRoundRect(rect,?500f,?500f,?mPaint)

//?弧度與半徑300的圓重疊了

canvas.drawCircle(300f,?300f,?300f,?mPaint)

}

出乎意料,居然保持與等于矩形寬的一半一致,看來,超過的話,就保持一致了。

文章沒啥技術含量,純屬一個驗證,既然畫圖了,就整理一下發表出來,說不定其他人也有這樣的疑惑!

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的drawroundrect java_Canvas中drawRoundRect()方法介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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