Giter Site home page Giter Site logo

javanoober / backgroundlibrary Goto Github PK

View Code? Open in Web Editor NEW
3.8K 49.0 458.0 14.09 MB

A framework for directly generating shape through Tags, no need to write shape.xml again(通过标签直接生成shape,无需再写shape.xml)

License: Apache License 2.0

Java 99.87% Kotlin 0.13%
shape shape-selector selector drawable xml stroke android

backgroundlibrary's People

Contributors

goblinv avatar javanoober avatar xxjy avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

backgroundlibrary's Issues

怎么抽取到style中?

报错找不到attr error: style attribute 'app:attr/unPressed_drawable' not found.

styles.xml中是这样的

<style name="btn_main">
        <item name="app:unSelected_drawable">@color/colorPrimaryDark</item>
        <item name="app:selected_drawable">@color/colorAccent</item>
        <item name="app:unPressed_drawable">@color/colorPrimaryDark</item>
        <item name="app:pressed_drawable">@color/colorAccent</item>
        <item name="app:corners_radius">@dimen/dp10</item>
        <item name="android:paddingLeft">@dimen/dp4</item>
        <item name="android:paddingRight">@dimen/dp4</item>
        <item name="android:background">@drawable/selector_btn_normal_press</item>
        <item name="android:layout_width">wrap_content</item>
        <item name="android:layout_height">wrap_content</item>
    </style>

赞一个,很好的依赖库;Could not download kotlin-stdlib.jar

Unable to resolve dependency for ':ZLibrary@debugAndroidTest/compileClasspath': Could not download kotlin-stdlib.jar (org.jetbrains.kotlin:kotlin-stdlib:1.2.70)
库主,这个kotlin语言用到了吗,添加依赖的时候,出错了,如果没有的话,能把依赖库中build.gradle里面的compile "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"这个去掉吧或者改成implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"

项目中引入Library报错

类BackgroundLibrary中final AppCompatDelegate delegate = ((AppCompatActivity) context).getDelegate();报 Cannot access android.support.v4.view.KeyEventDispatcher.Component的error

IllegalStateException 建议解决办法

Caused by: java.lang.IllegalStateException: A factory has already been set on this LayoutInflater
at android.view.LayoutInflater.setFactory(LayoutInflater.java:295)
at com.noober.background.BackgroundLibrary.inject(BackgroundLibrary.java:32)

源码对应
public void setFactory(Factory factory) {
if (mFactorySet) {
throw new IllegalStateException("A factory has already been set on this LayoutInflater");
}
if (factory == null) {
throw new NullPointerException("Given factory can not be null");
}
mFactorySet = true;
if (mFactory == null) {
mFactory = factory;
} else {
mFactory = new FactoryMerger(factory, null, mFactory, mFactory2);
}
}

实际上AppCompatActivity中,已经调用过setFactory方法。
所以mFactorySet 为true,重复调用setFactory 就会抛出异常。

建议解决办法:
参考换肤框架SkinCompat中,在调用setFactory 之前将通过反射将mFactorySet值设为false
private void installLayoutFactory(Context context) {
LayoutInflater layoutInflater = LayoutInflater.from(context);
try {
Field field = LayoutInflater.class.getDeclaredField("mFactorySet");
field.setAccessible(true);
field.setBoolean(layoutInflater, false);
LayoutInflaterCompat.setFactory(layoutInflater, getSkinDelegate(context));
} catch (NoSuchFieldException | IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}

忘采纳

引入项目报错。资源冲突了

C:/Users/Administrator/.gradle/caches/transforms-1/files-1.1/appcompat-v7-27.1.1.aar/262e0fab8925583e0d998bdc13acccdb/res/values/values.xml

error: duplicate value for resource 'attr/stroke_color' with config ''.
error: resource previously defined here.

字体显示不全

我昨天在用 px 适配的时候给 button 设置固定宽高和圆角并制定字体大小,字体下面会有部分显示不全,好像被遮盖住了,仔细看能看出来,把 button 换成 textview 就没有这个问题,显示正常

androidx 集成不了

Caused by: java.lang.IllegalStateException: A factory has already been set on this LayoutInflater
at android.view.LayoutInflater.setFactory2(LayoutInflater.java:314)
at com.noober.background.BackgroundLibrary.inject(BackgroundLibrary.java:32)
at com.lai.example.sample.background_library.BackgroundLibraryActivity.onCreate(BackgroundLibraryActivity.kt:12)
at android.app.Activity.performCreate(Activity.java:7060)
at android.app.Activity.performCreate(Activity.java:7051)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1215)

线上部分手机报错『XmlPullParserException』

系统版本:Android 4.4.4,level 19
设备机型:VIVO Y23L
CPU架构:armeabi-v7a

报错问题:

org.xmlpull.v1.XmlPullParserException
Binary XML file line #1: invalid drawable tag vector com.noober.background.BackgroundLibrary

属性名冲突

RT,属性名太简单,跟其他第三方的刚好冲突了,建议加上项目标识区分

代码设置白色的时候没有效果

Drawable drawable = new DrawableCreator.Builder().setCornersRadius(ConvertUtils.dp2px(context.getResources().getDimension(R.dimen.size_level2)))
.setSolidColor(Color.parseColor("#FFFFFF"))
.setStrokeColor(Color.parseColor("#FFFFFF"))
.setStrokeWidth(ConvertUtils.dp2px(2))
.build();

集成之后项目报错

Android resource linking failed 就一个很简单的ConstraintLayout 里面放了一个textview
然后设置了一个 app:bl_corner_radius="10dp" 然后就运行不起来...

如果使用第三方的baseactivity,如何使用这个框架

由于项目中使用了第三方远程依赖包,使用了该包的baseActivity,如何不修改源码的情况 下使用这个框架,测试在newactivity中 inject 和 inject2 都不起作用,ActivityLifecycleCallbacks中也不起作用

需求

可以在代码动态设置样式吗?

设置了渐变不能设置阴影

    <item name="android:elevation">@dimen/dp2</item>
    <item name="bl_corners_radius">@dimen/dp20</item>
    <item name="bl_gradient_angle">270</item>
    <item name="bl_gradient_startColor">@color/colorBlue2</item>
    <item name="bl_gradient_endColor">@color/colorBlue3</item>
    <item name="bl_ripple_enable">true</item>
    <item name="bl_ripple_color">@color/colorBlue4</item>

想要一个带渐变+阴影+水波纹的效果,但是设置了渐变之后,没有阴影效果,在点击按钮之后,阴影又出现了

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.