【问题标题】:Android modify imported library via gradleAndroid 通过 gradle 修改导入的库
【发布时间】:2016-02-15 00:44:56
【问题描述】:

我通过 gradle 导入了 zxing android 库以供使用,但是我想修改事物的绘制方式。据我了解,这只能通过更改库中一个类中的绘图函数来改变。问题是我无法修改库中的类,因为它们是用 gradle 导入的。

有什么方法可以编辑那个文件,甚至提供另一个文件来覆盖那个文件?谢谢你的时间。

编辑: 这是 zxing github 的链接以及我尝试更改函数的类。我希望能够更改 onDraw 函数的作用。

https://github.com/zxing/zxing/blob/master/android/src/com/google/zxing/client/android/ViewfinderView.java

【问题讨论】:

  • 欢迎来到 Stack Overflow!您能否详细说明您在显示代码的必要部分时所做的努力?
  • 我已经更新了帖子。谢谢

标签: java android gradle


【解决方案1】:

我无法找到覆盖文件的方法,但我确实找到了解决方法。我最终扩展了 zXingScannerView 文件并对函数 setAutoFocus(boolean state) 进行了覆盖。我选择了那个,因为它总是在覆盖设置后被调用,并且允许我立即轻松地删除它。

在我所做的那个功能中:

int chidrenCount = getChildCount();
for(int i = 0; i < childrenCount; i++) {
    if(getChildAt(i) instanceof ViewFinderView) {
        getChildAt(i).setVisibility(View.INVISIBLE);
    }
}

感谢@FlyingPumba 的帮助

【讨论】:

    【解决方案2】:

    如果您参考Zxing Android library 使用条形码,它是开源的! 这意味着您可以下载此库的源代码,将其导入您的项目并进行所需的更改。

    如需了解更多关于将库导入 Android 项目的信息,请阅读this SO question

    另外,如果您认为 ZXing 的其他用户会从此次更改中受益,您可以随时通过 GitHub 为该库做出贡献。

    【讨论】:

    • 我使用 Gradle 依赖 compile 'name' 添加一个库,因为它既快速又简单。但通常,出于调试/测试目的,我需要编辑几行外部库。似乎 Gradle 已经缓存了它的源文件(我确定我在 Android Studio 中看到的文件不是反编译版本,因为它在方法中包含 cmets)。除了再次下载源文件并手动将它们添加到我的项目并删除依赖项之外,没有更简单的方法吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 2014-05-29
    相关资源
    最近更新 更多