日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

Android代码动态设置圆角,颜色,线条背景

發布時間:2023/12/8 Android 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Android代码动态设置圆角,颜色,线条背景 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發中平時用到了圓角背景,但是每個圓角背景都不一樣,這樣還要創建多個xml布局,為了簡單快捷,可以使用代碼創建圓角背景.
這里以創建矩形圓角背景為例.GradientDrawable.RECTANGLE.
先看效果圖

  • 常用方法(創建xml)
  • 代碼 動態創建
  • 代碼修改已有布局
  • 創建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代码动态设置圆角,颜色,线条背景的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。