Skip to content

2、使用方法

javaKepp edited this page Dec 5, 2019 · 5 revisions
  1. 在layout中直接添加属性即可,无需任何代码

  2. 如果标签不生效,请在加载布局前,也就是调用inflate方法之前调用inject方法

     BackgroundLibrary.inject(context);  
    
  3. BackgroundLibrary自动对所有activity进行了inject,如果不需要自动inject,想自己手动来控制,可以使用BLAutoInjectController

      // 在application的代码块或者attachBaseContext加入配置,注意onCreate中配置无效  
    
      {  
         BLAutoInjectController.setEnableAutoInject(false);  
      }  
      //或者  
      static {  
         BLAutoInjectController.setEnableAutoInject(false);  
      }  
      //或者  
      @Override  
      protected void attachBaseContext(Context base) {  
         super.attachBaseContext(base);  
         BLAutoInjectController.setEnableAutoInject(false);  
      }
    

博文使用介绍(文章基于1.0.5版本,参考使用即可)

  • 现已基本支持selector以及shape的所有属性,并且在此基础上增加了一些属性设置,便于使用。
  • 所有属性的设置方法与原生shape、selector使用方法一样,原生的写法怎么写,就翻译成对应的bl属性加入xml即可。
  • 为了便于记忆,所有属性命名规则为bl_标签名_标签属性名,具体属性可以查看属性列表
  • 如何进行xml内的属性代码自动提示,请查看代码提示配置

下面展示事例效果,更多demo请查看使用示例
点击效果

第一个点赞效果:

android:layout_width="20dp"
android:layout_height="20dp"
android:layout_marginTop="5dp"
app:bl_pressed_drawable="@drawable/circle_like_pressed"
app:bl_unPressed_drawable="@drawable/circle_like_normal" />

就等同于:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
        android:drawable="@drawable/circle_like_pressed" />
    <item android:state_pressed="false"
        android:drawable="@drawable/circle_like_normal" />
</selector>

或者通过代码设置:

Drawable drawable4 = new DrawableCreator.Builder().setCornersRadius(dip2px(20))
        .setPressedDrawable(ContextCompat.getDrawable(this, R.drawable.circle_like_pressed))
        .setUnPressedDrawable(ContextCompat.getDrawable(this, R.drawable.circle_like_normal))
        .build();
tv.setClickable(true);
tv.setBackground(drawable4);   

第二个按钮效果:

<Button
        android:layout_width="300dp"
        android:layout_height="50dp"
        android:layout_marginTop="5dp"
        android:gravity="center"
        android:padding="0dp"
        android:text="有波纹触摸反馈的按钮"
        android:textColor="@android:color/white"
        android:textSize="20sp"
        app:bl_corners_radius="20dp"
        app:bl_pressed_drawable="#71C671"
        app:bl_ripple_color="#71C671"
        app:bl_ripple_enable="true"
        app:bl_stroke_color="#8c6822"
        app:bl_stroke_width="2dp"
        app:bl_unPressed_drawable="#7CFC00" />

或者通过代码设置:

Drawable drawable3 = new DrawableCreator.Builder().setCornersRadius(dip2px(20))
        .setRipple(true, Color.parseColor("#71C671"))
        .setSolidColor(Color.parseColor("#7CFC00"))
        .setStrokeColor(Color.parseColor("#8c6822"))
        .setStrokeWidth(dip2px(2))
        .build();
btn.setBackground(drawable3);

使用其实基本和selector shape一样。