Android开发笔记之代码动态生成图片状态选择器

    xiaoxiao2021-03-25  50

    用代码动态生成图片状态选择器(背景颜色还可以有渐变的效果)

    import android.graphics.drawable.Drawable; import android.graphics.drawable.GradientDrawable; import android.graphics.drawable.StateListDrawable; /** * 图片工具类 */ public class DrawableUtil { private DrawableUtil() { } /** * 获取一个圆角矩形的图片 * * @param rgb 图片颜色rgb格式 * @param radis 圆角的弧度大小 * @return */ public static Drawable generateDrawable(int rgb, float radis) { GradientDrawable drawable = new GradientDrawable(); drawable.setShape(GradientDrawable.RECTANGLE);//设置形状为矩形 drawable.setColor(rgb);//设置图片颜色 drawable.setCornerRadius(radis);//设置圆角 return drawable; } /** * 获取一个背景可渐变的图片Selector * * @param pressed 按压状态下的bg * @param normal 默认状态的bg * @return */ public static Drawable generateSelector(Drawable pressed, Drawable normal) { //多种状态的多种图片集合,对应xml格式的selector StateListDrawable drawable = new StateListDrawable(); //添加多种状态下的图片 drawable.addState(new int[]{android.R.attr.state_pressed}, pressed); drawable.addState(new int[]{android.R.attr.state_selected}, pressed); drawable.addState(new int[]{}, normal); //设置状态选择器的过度动画 if (Build.VERSION.SDK_INT>10){ drawable.setEnterFadeDuration(300); drawable.setExitFadeDuration(300); } return drawable; } }

    获取一个随机的rgb颜色

    import android.graphics.Color; import java.util.Random; /** * 颜色工具类 */ public class ColorUtil { private ColorUtil(){ } /** * 获取一个随机的rgb颜色 * @return */ public static int getRandomColor(){ Random random = new Random(); int red = random.nextInt(150)+30;//0-190 int green = random.nextInt(150)+30; int blue = random.nextInt(150)+30; return Color.rgb(red, green, blue); } }
    转载请注明原文地址: https://ju.6miu.com/read-39608.html

    最新回复(0)