zoukankan      html  css  js  c++  java
  • java代码代替xml实现图片

    1.使用StateListDrawable替换selector

     public static StateListDrawable getSelector(Drawable normalDrawable, Drawable pressDrawable) {
            StateListDrawable stateListDrawable = new StateListDrawable();
            //给当前的颜色选择器添加选中图片指向状态,未选中图片指向状态
            stateListDrawable.addState(new int[]{android.R.attr.state_enabled, android.R.attr.state_pressed}, pressDrawable);
            stateListDrawable.addState(new int[]{android.R.attr.state_enabled}, normalDrawable);
            //设置默认状态
            stateListDrawable.addState(new int[]{}, normalDrawable);
            return stateListDrawable;
    }
    

    默认不好使需要在使用的对象设置为可点击的;有两种方法:

    方法1

    tv.setClickable(true);
    

    方法2:

    tv.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
             UIUtils.toast(tv.getText().toString(),false);
         }
     });
    

    2.使用GradientDrawable替换shape

    public static Drawable getDrawable(int rgb,float radius){
            GradientDrawable gradientDrawable = new GradientDrawable();
            gradientDrawable.setColor(rgb);  //填充颜色
            gradientDrawable.setGradientType(GradientDrawable.RECTANGLE); //shape矩形
            gradientDrawable.setCornerRadius(radius);  //四周圆角半径
            gradientDrawable.setStroke(UIUtils.dp2px(1), rgb); //边框厚度与颜色
    
            return gradientDrawable;
    }
    

      

  • 相关阅读:
    闪电侠 Netty 小册里的骚操作
    面试被问烂的 Spring IOC(求求你别再问了)
    面试问烂的 Spring AOP 原理、SpringMVC 过程(求求你别问了)
    使用 Cglib 实现多重代理
    Redis 初次见面
    Apollo 10 — adminService 全量发布
    Apollo 9 — adminService 主/灰度版本发布
    简析限流算法
    Dubbo 源码分析
    Dubbo 源码分析
  • 原文地址:https://www.cnblogs.com/ganchuanpu/p/5989154.html
Copyright © 2011-2022 走看看