-
Notifications
You must be signed in to change notification settings - Fork 468
2、使用方法
javaKepp edited this page Dec 5, 2019
·
5 revisions
-
在layout中直接添加属性即可,无需任何代码。
-
如果标签不生效,请在加载布局前,也就是调用inflate方法之前调用inject方法
BackgroundLibrary.inject(context);
-
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); }
- 现已基本支持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一样。