Android代码动态设置圆角,颜色,线条背景
生活随笔
收集整理的這篇文章主要介紹了
Android代码动态设置圆角,颜色,线条背景
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
開發中平時用到了圓角背景,但是每個圓角背景都不一樣,這樣還要創建多個xml布局,為了簡單快捷,可以使用代碼創建圓角背景.
這里以創建矩形圓角背景為例.GradientDrawable.RECTANGLE.
先看效果圖
創建xml
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"android:shape="rectangle"><!--填充色--><solid android:color="#FF82AB" /><!--線條--><strokeandroid:width="2dp"android:color="#FF0000" /><!--角度--><corners android:radius="8dp" /> </shape>代碼 動態創建
1.創建每個角度都一樣的背景
/*** 創建背景顏色** @param color 填充色* @param strokeColor 線條顏色* @param strokeWidth 線條寬度 單位px* @param radius 角度 px*/public static GradientDrawable createRectangleDrawable(@ColorInt int color, @ColorInt int strokeColor, int strokeWidth, float radius) {try {GradientDrawable radiusBg = new GradientDrawable();//設置Shape類型radiusBg.setShape(GradientDrawable.RECTANGLE);//設置填充顏色radiusBg.setColor(color);//設置線條粗心和顏色,pxradiusBg.setStroke(strokeWidth, strokeColor);//設置圓角角度,如果每個角度都一樣,則使用此方法radiusBg.setCornerRadius(radius);return radiusBg;} catch (Exception e) {return new GradientDrawable();}}2.自定義每個方向的圓角角度
/*** 創建背景顏色** @param color 填充色* @param strokeColor 線條顏色* @param strokeWidth 線條寬度 單位px* @param radius 角度 px,長度為4,分別表示左上,右上,右下,左下的角度*/public static GradientDrawable createRectangleDrawable(@ColorInt int color, @ColorInt int strokeColor, int strokeWidth, float radius[]) {try {GradientDrawable radiusBg = new GradientDrawable();//設置Shape類型radiusBg.setShape(GradientDrawable.RECTANGLE);//設置填充顏色radiusBg.setColor(color);//設置線條粗心和顏色,pxradiusBg.setStroke(strokeWidth, strokeColor);//每連續的兩個數值表示是一個角度,四組:左上,右上,右下,左下if (radius != null && radius.length == 4) {radiusBg.setCornerRadii(new float[]{radius[0], radius[0], radius[1], radius[1], radius[2], radius[2], radius[3], radius[3]});}return radiusBg;} catch (Exception e) {return new GradientDrawable();}}代碼修改已有布局
前提是在xml中,或者已設置的背景,必須是GradientDrawable.否則就會異常
GradientDrawable bg4 = (GradientDrawable) view.getBackground();//修改填充色bg4.setColor(Color.parseColor("#EEEE00"));//這里還可以修改線條, 角度..等這里對于不同的不需要設置的屬性,可以在方法中判斷一下,不設置,或者給其默認值.
例如:如果不需要設置邊框顏色和寬度,那么就不需要使用setStroke()方法設置.
這里就不一一舉例了.
總結
以上是生活随笔為你收集整理的Android代码动态设置圆角,颜色,线条背景的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [激光原理与应用-21]:《激光原理与技
- 下一篇: Android基础知识复习之打开照相机拍