# BackgroundLibrary
A framework for directly generating shape through Tags, no need to write shape.xml again(通过标签直接生成shape,无需再写shape.xml)
issue回复不及时,可以添加qq群887686934
![](https://user-gold-cdn.xitu.io/2018/9/11/165c6e5c0cff0548?w=681&h=233&f=png&s=31240)
[English.md](https://github.com/JavaNoober/BackgroundLibrary/blob/master/README-EN.md)
依赖方式:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
implementation "com.android.support:appcompat-v7:$supportVersion"
implementation 'com.github.JavaNoober.BackgroundLibrary:library:1.7.6'
如果项目使用了androidx:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
implementation "androidx.appcompat:appcompat:$supportVersion"
implementation 'com.github.JavaNoober.BackgroundLibrary:libraryx:1.7.6'
## 使用文档
**无需任何代码,直接加入bl标签属性即可,与原生view无缝衔接**,具体使用方法以及属性内容请查看[wiki](https://github.com/JavaNoober/BackgroundLibrary/wiki)
**重要的事情说3遍!!!**
[wiki](https://github.com/JavaNoober/BackgroundLibrary/wiki)
[wiki](https://github.com/JavaNoober/BackgroundLibrary/wiki)
[wiki](https://github.com/JavaNoober/BackgroundLibrary/wiki)
## 示例效果
![](https://raw.githubusercontent.com/JavaNoober/BackgroundLibrary/master/test/show.gif)
使用效果完全和原生shape
selector一样,但是只需要直接在xml中加入属性即可,例如
<TextView
android:id="@+id/ttt"
android:layout_width="130dp"
android:layout_height="36dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:text="TextView"
android:textColor="#8c6822"
android:textSize="20sp"
app:bl_corners_radius="4dp"
app:bl_solid_color="#E3B666"
app:bl_stroke_color="#8c6822"
app:bl_stroke_dashGap="5dp"
app:bl_stroke_dashWidth="10dp"
app:bl_stroke_width="2dp" />
1、边框+背景+圆角
<TextView
android:layout_width="130dp"
android:layout_width="130dp"
android:layout_height="36dp"
android:gravity="center"
android:text="TextView"
android:textColor="#8c6822"
android:textSize="20sp"
app:bl_corners_radius="4dp"
app:bl_solid_color="#E3B666"
app:bl_stroke_color="#8c6822"
app:bl_stroke_width="2dp" />
等同于
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="2dp"/>
<solid android:color="#E3B666"/>
<stroke android:color="#E3B666" android:width="2dp"/>
</shape>
2、渐变
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="2dp"/>
<gradient android:angle="0"
android:startColor="#63B8FF"
android:endColor="#4F94CD"/>
</shape>
等同于
<Button
android:id="@+id/btn"
android:layout_width="130dp"
android:layout_height="36dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:padding="0dp"
android:text="跳转到列表"
android:textColor="#4F94CD"
android:textSize="20sp"
app:bl_corners_radius="2dp"
app:bl_gradient_angle="0"
app:bl_gradient_endColor="#4F94CD"
app:bl_gradient_startColor="#63B8FF" />
3、点击效果
![](https://user-gold-cdn.xitu.io/2018/9/12/165ce0e7226b6e05?w=264&h=68&f=gif&s=293851)
第一个点赞效果:
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一样。
4、点击文字变色
![](https://user-gold-cdn.xitu.io/2018/9/19/165f131f7e85b1e7?w=289&h=61&f=gif&s=8828)
<Button
android:layout_width="300dp"
android:layout_height="50dp"
android:layout_marginTop="5dp"
android:gravity="center"
android:padding="0dp"
android:text="点击文字变色"
app:bl_pressed_textColor="#919DAF"
app:bl_unPressed_textColor="@android:color/holo_red_dark"/>
5、点击填充边框变色属性
![](https://raw.githubusercontent.com/JavaNoober/BackgroundLibrary/master/test/pic11.gif)
<TextView
android:layout_width="180dp"
android:layout_height="36dp"
android:layout_marginTop="15dp"
android:gravity="center"
android:text="点击边框变色"
android:textColor="@android:color/black"
android:textSize="18dp"
android:textStyle="bold"
android:clickable="true"
app:bl_pressed_solid_color="#FFDEAD"
app:bl_unPressed_solid_color="#E9967A"
app:bl_stroke_width="1dp"
app:bl_pressed_stroke_color="#C6E2FF"
app:bl_unPressed_stroke_color="#98FB98"/>
6、style类似的使用方式
style中不要加入"app:", 直接写属性名即可
<style name="bg">
<item name="bl_corners_radius">4dp</item>
<item name="bl_solid_color">#E3B666</item>
<item name="bl_stroke_color">#8c6822</item>
<item name="bl_stroke_width">2dp</item>
</style>
<TextView
android:layout_width="130dp"
android:layout_height="36dp"
android:gravity="center"
android:text="TextView"
android:textColor="#8c6822"
android:textSize="20sp"
style="@style/bg"/>
7、设置drawableLeft
![](https://user-gold-cdn.xitu.io/2019/1/28/168927fe5146b80d?w=261&h=82&f=gif&s=27162)
<Button
android:id="@+id/btn_like"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
app:bl_position="left"
android:background="@null"
android:text="点赞+1"
没有合适的资源?快使用搜索试试~ 我知道了~
BackgroundLibrary.zip
共235个文件
java:98个
xml:50个
png:49个
需积分: 5 0 下载量 96 浏览量
2023-08-19
12:32:55
上传
评论
收藏 13.85MB ZIP 举报
温馨提示
一个通过标签直接生成形状的框架,无需再写shape.xml(通过标签直接生成形状无需再写shape.xml)
资源推荐
资源详情
资源评论
收起资源包目录
BackgroundLibrary.zip (235个子文件)
gradlew.bat 2KB
preview.gif 3.24MB
show.gif 3.05MB
属性提示.gif 1.73MB
gif2.gif 1.67MB
gif.gif 1.14MB
anim.gif 661KB
gif.gif 175KB
gif1.gif 173KB
mulit_text.gif 55KB
pic11.gif 17KB
textChange.gif 9KB
.gitignore 143B
.gitignore 7B
.gitignore 7B
.gitignore 7B
.gitignore 7B
build.gradle 2KB
build.gradle 2KB
build.gradle 1KB
build.gradle 1KB
build.gradle 1KB
settings.gradle 334B
gradlew 5KB
gradle-wrapper.jar 53KB
GradientDrawableCreator.java 58KB
GradientDrawableCreator.java 58KB
DrawableCreator.java 40KB
DrawableCreator.java 40KB
BackgroundFactory.java 19KB
BackgroundFactory.java 16KB
MainActivity.java 6KB
SelectorDrawableCreator.java 5KB
SelectorDrawableCreator.java 5KB
MultiSelectorDrawableCreator.java 4KB
MultiSelectorDrawableCreator.java 4KB
MainActivity.java 4KB
SelectorPre21DrawableCreator.java 4KB
SelectorPre21DrawableCreator.java 4KB
BackgroundLibrary.java 4KB
BackgroundLibrary.java 4KB
ColorStateCreator.java 4KB
ColorStateCreator.java 4KB
AnimationDrawableCreator.java 4KB
AnimationDrawableCreator.java 4KB
MultiTextColorSelectorColorCreator.java 4KB
MultiTextColorSelectorColorCreator.java 4KB
BlankFragment.java 3KB
DrawableFactory.java 3KB
GradientStateDrawableCreator.java 3KB
GradientStateDrawableCreator.java 3KB
DrawableFactory.java 3KB
TextViewGradientColor.java 3KB
TextViewGradientColor.java 3KB
ButtonDrawableCreator.java 2KB
ButtonDrawableCreator.java 2KB
MyApplication.java 2KB
PressDrawableCreator.java 2KB
PressDrawableCreator.java 2KB
Const.java 1KB
Const.java 1KB
MultiSelector.java 1KB
MultiSelector.java 1KB
BackgroundContentProvider.java 1KB
BackgroundContentProvider.java 1KB
ResourceUtils.java 1KB
ResourceUtils.java 1KB
ListActivity.java 1KB
BLActivityLifecycleRegister.java 851B
BLActivityLifecycleRegister.java 851B
BLConstraintLayout.java 792B
BLConstraintLayout.java 785B
BLImageButton.java 772B
BLRadioButton.java 772B
BLImageButton.java 772B
BLRadioButton.java 772B
BLRelativeLayout.java 761B
BLRelativeLayout.java 761B
BLImageView.java 760B
BLImageView.java 760B
BLCheckBox.java 754B
BLTextView.java 754B
BLEditText.java 754B
BLCheckBox.java 754B
BLTextView.java 754B
BLEditText.java 754B
BLLinearLayout.java 749B
BLLinearLayout.java 749B
BLFrameLayout.java 743B
BLButton.java 743B
BLFrameLayout.java 743B
BLButton.java 742B
BLScrollView.java 737B
BLGridLayout.java 737B
BLScrollView.java 737B
BLGridLayout.java 737B
ExampleInstrumentedTest.java 731B
ExampleInstrumentedTest.java 731B
ExampleInstrumentedTest.java 727B
BLGridView.java 725B
共 235 条
- 1
- 2
- 3
资源评论
hello_中年人
- 粉丝: 7
- 资源: 324
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功