<input id="0qass"><u id="0qass"></u></input>
  • <input id="0qass"><u id="0qass"></u></input>
  • <menu id="0qass"><u id="0qass"></u></menu>

    Android圓角ViewGrup/View庫(可加邊框),媽媽再也不用擔心設計圓角了!

    項目地址:RoundCorners

    比較常用的ViewGroup和View的圓角實現(可加邊框),一發治好設計的圓角病。

    Demo

    效果預覽

    特點

    • LinearLayout、RelativeLayout、FrameLayout、ViewPager支持圓角
    • ImageView、TextView、View、Button支持圓角
    • CircleImageView(圓形圖片)
    • 支持邊框(不遮擋圖片)
    • 可正常設置ripple(波紋不會突破邊框)
    • 使用xml進行配置,使用簡單

    基本用法

    Step 1. 添加JitPack倉庫
    在項目根目錄下的 build.gradle 中添加倉庫:

    allprojects {
        repositories {
            ...
            maven { url "https://jitpack.io" }
        }
    }
    

    Step 2. 添加項目依賴

    dependencies {
        implementation 'com.github.KuangGang:RoundCorners:1.0.2'
    }
    

    Step 3. 在布局文件中添加需要的RoundCorners

    <com.kproduce.roundcorners.CircleImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:src="@mipmap/ic_test"
        app:rStrokeColor="@android:color/holo_red_dark"
        app:rStrokeWidth="5dp" />
    
    <com.kproduce.roundcorners.RoundImageView
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:scaleType="centerCrop"
        android:src="@mipmap/ic_test"
        app:rRadius="30dp"/>
    
    <com.kproduce.roundcorners.RoundTextView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:background="@android:color/holo_blue_dark"
        android:gravity="center"
        android:text="Hello!"
        android:textColor="@android:color/white"
        android:textSize="40sp"
        app:rRightRadius="30dp" />
    
    <com.kproduce.roundcorners.RoundRelativeLayout
        android:layout_width="200dp"
        android:layout_height="200dp"
        app:rTopRightRadius="30dp"
        app:rBottomRightRadius="30dp"
        app:rStrokeColor="@android:color/holo_green_dark"
        app:rStrokeWidth="5dp">
    
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@android:color/holo_blue_dark" />
    </com.kproduce.roundcorners.RoundRelativeLayout>
    
    <com.kproduce.roundcorners.RoundTextView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:background="@android:color/holo_blue_dark"
        android:gravity="center"
        android:text="Hello!"
        android:textColor="@android:color/white"
        android:textSize="40sp"
        app:rLeftRadius="50dp"
        app:rRightRadius="50dp"/>
    ……
    

    支持的屬性、方法

    屬性名含義默認值
    rRadius統一設置四個角的圓角半徑0dp
    rLeftRadius左邊兩個角圓角半徑0dp
    rRightRadius右邊兩個角圓角半徑0dp
    rTopRadius上邊兩個角圓角半徑0dp
    rBottomRadius下邊兩個角圓角半徑0dp
    rTopLeftRadius左上角圓角半徑0dp
    rTopRightRadius右上角圓角半徑0dp
    rBottomLeftRadius左下角圓角半徑0dp
    rBottomRightRadius右下角圓角半徑0dp
    rStrokeWidth邊框寬度0dp
    rStrokeColor邊框顏色Color.WHITE

    原理淺解

    Android View的繪制流程。
    View的繪制看一下這篇文章即可,代碼版本比較早,但是邏輯基本相同。

    1. 使用Path的addRoundRect方法,將需要剪切的圓角半徑進行設置。
    2. 所有View和ViewGroup的繪制都需要經過draw方法,在draw結束之后使用第一步的Path進行畫布切割。
    3. 注意在draw中減少創建對象次數。

    版本記錄

    版本號更新內容
    1.0.21.增加邊框
    2.增加RoundButton/RoundViewPager
    1.0.11.修復低版本系統圓角View黑框問題
    2.增加CircleImageView
    1.0.0First Version
    • 10
      點贊
    • 5
      評論
    • 17
      收藏
    • 一鍵三連
      一鍵三連
    • 掃一掃,分享海報

    打賞
    文章很值,打賞犒勞作者一下
    相關推薦
    ??2020 CSDN 皮膚主題: 大白 設計師:CSDN官方博客 返回首頁

    打賞

    老匡話Android

    你的鼓勵將是我創作的最大動力

    ¥2 ¥4 ¥6 ¥10 ¥20
    輸入1-500的整數
    余額支付 (余額:-- )
    掃碼支付
    掃碼支付:¥2
    獲取中
    掃碼支付

    您的余額不足,請更換掃碼支付或充值

    打賞作者

    實付
    使用余額支付
    點擊重新獲取
    掃碼支付
    錢包余額 0

    抵扣說明:

    1.余額是錢包充值的虛擬貨幣,按照1:1的比例進行支付金額的抵扣。
    2.余額無法直接購買下載,可以購買VIP、C幣套餐、付費專欄及課程。

    余額充值
    多乐彩