drawroundrect java_Canvas中drawRoundRect()方法介绍
畫布Canvas的一個(gè)方法,繪制圓角矩形
逛CSDN的時(shí)候,無意看到之前關(guān)注的一個(gè)博主,出了一本書《Android自定義控件》,以前學(xué)自定義控件的時(shí)候,就是看他的文章的,這次出書了,再加上當(dāng)當(dāng)做活動(dòng),就買了一本,支持一下感謝他之前寫的文章。
周末翻了一下,看到Canvas章節(jié)的時(shí)候,不太好理解drawRoundRect(),繪制圓角矩陣的方法,碼一下代碼實(shí)踐出真知。為了更明顯看到坐標(biāo)位置,用Sketch繪制一下,果然比自帶的畫圖工具好用(逃)
基本語法
public?void?drawRoundRect(RectF?rect,?float?rx,?float?ry,?Paint?paint)
功能:該方法用于在畫布上繪制圓角矩形,通過指定RectF對象以及圓角半徑來實(shí)現(xiàn)。
參數(shù)說明
float rx:生成圓角的橢圓的X軸半徑
float ry:生成圓角的橢圓的Y軸半徑
圓心位置
這個(gè)方法中,只需要設(shè)置圓角的X軸半徑和Y軸半徑,那圓心呢?
經(jīng)過測試,發(fā)現(xiàn)圓心是動(dòng)態(tài)變化的,看接下來代碼的分析
圓角半徑小于矩形寬的一半
override?fun?onDraw(canvas:?Canvas)?{
super.onDraw(canvas)
mPaint.color?=?Color.GRAY
mPaint.style?=?Paint.Style.STROKE
mPaint.strokeWidth?=?5f
//?繪制一個(gè)矩形作為背景,可以進(jìn)行觀察
val?rect?=?RectF(0f,?0f,?800f,?600f)
canvas.drawRect(rect,?mPaint)
//?繪制圓角,半徑小于矩形寬的一半
mPaint.color?=?Color.BLACK
//?發(fā)現(xiàn),繪制后,圓角弧度與
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
//?繪制一個(gè)矩形作為背景,可以進(jìn)行觀察
val?rect?=?RectF(0f,?0f,?800f,?600f)
canvas.drawRect(rect,?mPaint)
//?繪制圓角,半徑小于矩形寬的一半
mPaint.color?=?Color.RED
//?發(fā)現(xiàn),繪制后,圓角弧度與
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
//?繪制一個(gè)矩形作為背景,可以進(jìn)行觀察
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)
}
出乎意料,居然保持與等于矩形寬的一半一致,看來,超過的話,就保持一致了。
文章沒啥技術(shù)含量,純屬一個(gè)驗(yàn)證,既然畫圖了,就整理一下發(fā)表出來,說不定其他人也有這樣的疑惑!
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的drawroundrect java_Canvas中drawRoundRect()方法介绍的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看文件Linux命令(查看linux文
- 下一篇: 免费ddos攻击网址(ddos免费攻击网