真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何在Android中實(shí)現(xiàn)切圓角

本篇文章為大家展示了如何在Android中實(shí)現(xiàn)切圓角,內(nèi)容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細(xì)介紹希望你能有所收獲。

金林ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

1. 利用 Drawable 的 shape xml 實(shí)現(xiàn)

很多時(shí)候,我們可以自定義一些 drawable , 代碼如下:



 
 
 

其中,corners 就是我們實(shí)現(xiàn)的圓角,這里指定圓角的半徑為 15dp。

solid 是指填充色,這里為白色;

stroke 為drawable 的邊緣寬度和顏色設(shè)置,這里為 1dp 顏色比白色黑一點(diǎn)。

如果知識想要 「圓角」的話,可以不需要指定 stroke

然后在我們需要的 View 上,設(shè)置它的 background 為該 drawable 即可.

效果為:

如何在Android中實(shí)現(xiàn)切圓角
drawable 圓角

本質(zhì)是在 background 上加了圓角。

2. CardView 的圓角

CardView 是自帶圓角實(shí)現(xiàn)的,我們只需要在它的定義中加一句 app:cardCornerRadius="8dp" 即可。

代碼如下:




 

設(shè)置該 CardView 圓角半徑為 16dp,

效果圖如下:

如何在Android中實(shí)現(xiàn)切圓角

cardView 圓角

3. fresco 中的 SimpleDraweeView

fresco 是一個(gè)強(qiáng)大的圖片庫,里面的 SimpleDraweeView 常用來加載圖片。

SimpleDraweeView 實(shí)現(xiàn)了很多功能,其中一個(gè)就是實(shí)現(xiàn)了圓角屬性 roundedCornerRadius

實(shí)現(xiàn)代碼:

 

這里設(shè)置圖片圓形邊角為 3dp

實(shí)現(xiàn)效果為:

如何在Android中實(shí)現(xiàn)切圓角

SimpleDraweeView 圓角

4. 利用 View 的 ViewOutlineProvider 實(shí)現(xiàn)圓角

這種實(shí)現(xiàn)方式,本質(zhì)上是修改了 View 的輪廓。

代碼實(shí)現(xiàn):

itemView.outlineProvider = object : ViewOutlineProvider() {
 override fun getOutline(view: View, outline: Outline) {
 outline.setRoundRect(0, 0, view.width, view.height, 5.dp.toFloat())
 }
}
// 打開開關(guān)
itemView.clipToOutline = true

為整個(gè) View 添加上圓角。

實(shí)現(xiàn)效果為:

如何在Android中實(shí)現(xiàn)切圓角

outlineProvider 圓角

這樣的好處是,不需要給里面的子 view 設(shè)置圓角,在最外層的 View 設(shè)置為圓角即可。

更大的好處是:比使用了第一種方式 drawable 的 xml 少了一層過度繪制。因?yàn)槭∪チ嗽O(shè)置的 background

利用 ViewOutlineProvider 的實(shí)現(xiàn)圓角,本質(zhì)上是在 View 的畫布上畫了一個(gè)圓角的矩形。

setRoundRect(xxx)

同時(shí) outline 還可以畫其他的一些內(nèi)容。

outline.setRect(xxx)// 畫矩形
outline.setRoundRect(xxx)// 畫圓角矩形
outline.setOval(xxx) // 畫橢圓

同時(shí),因?yàn)?outline.setRoundRect(0, 0, view.width, view.height, 5.dp.toFloat()) 是在一個(gè)矩形上畫的圓角。因?yàn)?,?dāng)我們的矩形減小或增大時(shí),有些圓角是沒有區(qū)域可畫,會(huì)形成部分圓角存在的情況。

既然提到了 ViewOutlineProvider , 那就得提一下 StateListAnimator 這個(gè)動(dòng)畫得效果, 感興趣得自己去搜索一下??蓞⒖?StateListAnimator

上述內(nèi)容就是如何在Android中實(shí)現(xiàn)切圓角,你們學(xué)到知識或技能了嗎?如果還想學(xué)到更多技能或者豐富自己的知識儲(chǔ)備,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


分享題目:如何在Android中實(shí)現(xiàn)切圓角
文章起源:http://weahome.cn/article/jspioe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部