最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

桦川县| 英德市| 凤冈县| 肇庆市| 禄劝| 舟山市| 绥滨县| 宽甸| 连州市| 芜湖市| 顺义区| 建水县| 池州市| 贵德县| 通海县| 长宁区| 宁陕县| 桓台县| 定兴县| 沈丘县| 西贡区| 潼关县| 邵东县| 宜兰县| 张家界市| 通辽市| 炎陵县| 陇西县| 瓦房店市| 永清县| 登封市| 和田县| 永川市| 沧州市| 莒南县| 万宁市| 遵化市| 都昌县| 潮安县| 石门县| 佛冈县|