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

来源:互联网 发布:软件外包行业利润率 编辑:程序博客网 时间:2024/06/05 22:45

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

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);    }}
0 0
原创粉丝点击