android - 带有 SpinnerWheel 库的 CardsLib - 滑动时获取宽度和高度必须 > 0

标签 android

我正在构建一个同时使用 android-spinnerwheel 和 cardsLib 库的应用程序。 SpinnerWheel 工作得很好,但是当我尝试使用滑动来删除 cardsLib 的功能时,spinnerWheel 出现了问题。 错误是这样的:

06-21 10:43:04.873  17102-17102/com.bitcoinwatcher.app E/AndroidRuntime﹕ FATAL EXCEPTION: main
    java.lang.IllegalArgumentException: width and height must be > 0
            at android.graphics.Bitmap.createBitmap(Bitmap.java:638)
            at android.graphics.Bitmap.createBitmap(Bitmap.java:620)
            at antistatic.spinnerwheel.AbstractWheelView.recreateAssets(AbstractWheelView.java:185)
            at antistatic.spinnerwheel.AbstractWheel.onLayout(AbstractWheel.java:457)

我想我需要以某种方式告诉轮子它被删除了,但我无法找到具体的方法。 即使我设法这样做,它也发生在我实现之前:

    @Override
    public void onSwipe(Card card) {
    }

    @Override
    public void onUndoSwipe(Card card) {
    }
}

最佳答案

好吧,解决方案很简单。 看起来 CardsLib 连续绘制 slider ,即使 slider 不可见,导致它以位图宽度/高度 0 绘制。 添加以下安全检查

if (width == 0 || height == 0)
    return;

AbstractWheelView.java 解决了这个问题。 所以总而言之,

protected void recreateAssets(int width, int height) {
    if (width == 0 || height == 0)
        return;
    mSpinBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    mSeparatorsBitmap = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    setSelectorPaintCoeff(0);
}

关于android - 带有 SpinnerWheel 库的 CardsLib - 滑动时获取宽度和高度必须 > 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24339576/

相关文章:

android - 标题 : self signing server certificate

android - NavigationView 将所选项目设置为已选中

android - RadioGroup 对象不向 Activity 发送 Touch

java - Intent 后抽屉导航检查错误

android - 我想在 android 中将文本转换为 pdf

javascript - 使用 Webview/javascript 的 Android 应用程序。什么是安全问题?

Android Api 调用列表中的项目

android - 如何在特定位置的 ListView 中添加标题并为列表项创建自定义 View

android - 将项目放在字符串数组中?

java - 如何将文件保存到 Android 中的任何特定路径