欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android處理視圖圓角和色彩的工具類

 更新時間:2020年07月22日 17:09:11   作者:優(yōu)秀的哥斯拉  
這篇文章主要為大家詳細介紹了Android處理視圖圓角和色彩的工具類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

Android代碼處理視圖圓角和色彩的工具類,供大家參考,具體內(nèi)容如下

一直都用的.XML文件處理圓角與色彩或色彩漸變,覺得很不方便,后來發(fā)現(xiàn)了GradientDrawable這個類,就整了個工具類,用起來覺得挺方便

效果圖:

下面貼代碼:

public class DrawCorner {
 
 /**
 * 默認繪制圓角函數(shù),背景白色,半徑20
 * */
 public static GradientDrawable drawCorner() {
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadius(20);
 drawable.setColor(Color.WHITE);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù),背景白色
 * 參數(shù):
 * radius:圓角半徑
 * */
 public static GradientDrawable drawCorner(int radius) {
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadius(radius);
 drawable.setColor(Color.WHITE);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù),背景白色
 * 參數(shù):
 * radii:四個圓角半徑,依次是左上x、左上y、右上x、右上y、右下x、右下y、左下x、左下y
 * */
 public static GradientDrawable drawCorner(float[] radii) {
 if (radii == null || radii.length != 8) {
 radii = new float[]{0, 0, 0, 0, 0, 0, 0, 0};
 }
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadii(radii);
 drawable.setColor(Color.WHITE);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù)
 * 參數(shù):
 * radius:圓角半徑
 * color:背景色
 * */
 public static GradientDrawable drawCorner(int radius, int color) {
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadius(radius);
 drawable.setColor(color);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù)
 * 參數(shù):
 * radii:四個圓角半徑,依次是左上x、左上y、右上x、右上y、右下x、右下y、左下x、左下y
 * color:背景色
 * */
 public static GradientDrawable drawCorner(float[] radii, int color) {
 if (radii == null || radii.length != 8) {
 radii = new float[]{0, 0, 0, 0, 0, 0, 0, 0};
 }
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadii(radii);
 drawable.setColor(color);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù)
 * 參數(shù):
 * radius:圓角半徑
 * colors:漸變背景色
 * */
 public static GradientDrawable drawCorner(int radius, int[] colors) {
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadius(radius);
 drawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
 drawable.setColors(colors);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù)
 * 參數(shù):
 * radii:四個圓角半徑,依次是左上x、左上y、右上x、右上y、右下x、右下y、左下x、左下y
 * colors:漸變背景色
 * */
 public static GradientDrawable drawCorner(float[] radii, int[] colors) {
 if (radii == null || radii.length != 8) {
 radii = new float[]{0, 0, 0, 0, 0, 0, 0, 0};
 }
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadii(radii);
 drawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
 drawable.setColors(colors);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù)
 * 參數(shù):
 * radius:圓角半徑
 * colors:漸變背景色
 * orientation:漸變類型( 0:上到下,1:右上到左下,2:右到左,3:右下到左上,4:下到上,5:左下到右上,6:左到右,7:左上到右下 )
 * */
 public static GradientDrawable drawCorner(int radius, int[] colors, int orientation) {
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadius(radius);
 drawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
 switch (orientation) {
 case 0:
 drawable.setOrientation(GradientDrawable.Orientation.TOP_BOTTOM);
 break;
 case 1:
 drawable.setOrientation(GradientDrawable.Orientation.TR_BL);
 break;
 case 2:
 drawable.setOrientation(GradientDrawable.Orientation.RIGHT_LEFT);
 break;
 case 3:
 drawable.setOrientation(GradientDrawable.Orientation.BR_TL);
 break;
 case 4:
 drawable.setOrientation(GradientDrawable.Orientation.BOTTOM_TOP);
 break;
 case 5:
 drawable.setOrientation(GradientDrawable.Orientation.BL_TR);
 break;
 case 6:
 drawable.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
 break;
 case 7:
 drawable.setOrientation(GradientDrawable.Orientation.TL_BR);
 break;
 }
 drawable.setColors(colors);
 return drawable;
 }
 
 /**
 * 默認繪制圓角函數(shù)
 * 參數(shù):
 * radii:四個圓角半徑,依次是左上、右上、右下、左下
 * colors:漸變背景色
 * orientation:漸變類型( 0:上到下,1:右上到左下,2:右到左,3:右下到左上,4:下到上,5:左下到右上,6:左到右,7:左上到右下 )
 * */
 public static GradientDrawable drawCorner(float[] radii, int[] colors, int orientation) {
 if (radii == null || radii.length != 8) {
 radii = new float[]{0, 0, 0, 0, 0, 0, 0, 0};
 }
 GradientDrawable drawable = new GradientDrawable();
 drawable.setCornerRadii(radii);
 drawable.setGradientType(GradientDrawable.LINEAR_GRADIENT);
 switch (orientation) {
 case 0:
 drawable.setOrientation(GradientDrawable.Orientation.TOP_BOTTOM);
 break;
 case 1:
 drawable.setOrientation(GradientDrawable.Orientation.TR_BL);
 break;
 case 2:
 drawable.setOrientation(GradientDrawable.Orientation.RIGHT_LEFT);
 break;
 case 3:
 drawable.setOrientation(GradientDrawable.Orientation.BR_TL);
 break;
 case 4:
 drawable.setOrientation(GradientDrawable.Orientation.BOTTOM_TOP);
 break;
 case 5:
 drawable.setOrientation(GradientDrawable.Orientation.BL_TR);
 break;
 case 6:
 drawable.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT);
 break;
 case 7:
 drawable.setOrientation(GradientDrawable.Orientation.TL_BR);
 break;
 }
 drawable.setColors(colors);
 return drawable;
 }
 
}

調(diào)用方式很簡單,就是

View.setBackground(DrawCorner.drawCorner);

就行了

例如:

TextView textView = findViewById(R.id.test);
textView.setBackground(DrawCorner.drawCorner());

Github地址

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • android panellistview 圓角實現(xiàn)代碼

    android panellistview 圓角實現(xiàn)代碼

    android panellistview 圓角是每一個android開發(fā)者都具備的一項,對于新手朋友來說可能有點難度,接下來將詳細介紹,需要了解的朋友可以參考下
    2012-12-12
  • Kotlin創(chuàng)建一個好用的協(xié)程作用域

    Kotlin創(chuàng)建一個好用的協(xié)程作用域

    這篇文章主要介紹了Kotlin創(chuàng)建一個好用的協(xié)程作用域,kotlin中使用協(xié)程,是一定要跟協(xié)程作用域一起配合使用的,否則可能協(xié)程的生命周期無法被準確控制,造成內(nèi)存泄漏或其他問題
    2022-07-07
  • Android 快速使用正則表達式,校驗身份證號的實例

    Android 快速使用正則表達式,校驗身份證號的實例

    下面小編就為大家分享一篇Android 快速使用正則表達式,校驗身份證號的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • MVVMLight項目的綁定及各種使用場景示例分析

    MVVMLight項目的綁定及各種使用場景示例分析

    這篇文章主要為大家介紹了MVVMLight項目中的綁定及綁定的各種使用場景示例源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步除夕快樂
    2022-01-01
  • com.android.support版本沖突解決方法

    com.android.support版本沖突解決方法

    在本篇文章里小編給大家整理的是關(guān)于com.android.support版本沖突解決方法以及相關(guān)知識點,需要的朋友們學(xué)習(xí)下。
    2019-09-09
  • Android中獲得手機屏幕大小實現(xiàn)代碼

    Android中獲得手機屏幕大小實現(xiàn)代碼

    這篇文章主要介紹了Android中獲得手機屏幕大小實現(xiàn)代碼,Android開發(fā)中經(jīng)常需要獲得屏幕的寬高,本文直接封裝成一個工具類,需要的朋友可以參考下
    2015-06-06
  • Android事件處理的兩種方式詳解

    Android事件處理的兩種方式詳解

    事件是一種有用來收集用戶與應(yīng)用程序互動數(shù)據(jù)的互動組件,如按鍵或觸摸屏等放置事件,因為每個事件從Android框架維護事件隊列先入先出(FIFO)基礎(chǔ)上的隊列。可以在程序中捕獲這些事件,按要求并采取適當?shù)膭幼?/div> 2023-02-02
  • Android中Image的簡單實例詳解

    Android中Image的簡單實例詳解

    這篇文章主要為大家詳細介紹了Android中Image的簡單實例,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • 解決Android橫豎屏切換數(shù)據(jù)丟失問題的方法

    解決Android橫豎屏切換數(shù)據(jù)丟失問題的方法

    這篇文章主要為大家詳細介紹了Android橫豎屏切換數(shù)據(jù)丟失問題的解決方法,感興趣的小伙伴們可以參考一下
    2016-05-05
  • Android使用http請求手機號碼歸屬地查詢代碼分享

    Android使用http請求手機號碼歸屬地查詢代碼分享

    這篇文章主要介紹了Android使用http請求手機號碼歸屬地查詢代碼分享的相關(guān)資料,需要的朋友可以參考下
    2016-06-06

最新評論