首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有CardsLib库的SpinnerWheel -在滑动时获取宽度和高度必须大于0

带有CardsLib库的SpinnerWheel -在滑动时获取宽度和高度必须大于0
EN

Stack Overflow用户
提问于 2014-06-21 07:51:07
回答 1查看 281关注 0票数 1

我正在构建一个同时使用Android-Spner轮和cardsLib的应用程序。spinnerWheel工作得很好,但是当我尝试使用swipe删除cardsLib的特性时,SpinnerWheel就会受到干扰。错误是:

代码语言:javascript
复制
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)

我想我需要告诉方向盘它被删除了,但我却找不到确切的答案。即使我设法做到了,它也是在实现之前发生的:

代码语言:javascript
复制
    @Override
    public void onSwipe(Card card) {
    }

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

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-03 19:17:06

好吧,解决办法很简单。看起来,即使在不可见的情况下,CardsLib仍会连续绘制滑块,从而使其绘制位图宽度/高度为0。添加以下安全检查

代码语言:javascript
复制
if (width == 0 || height == 0)
    return;

AbstractWheelView.java修复了这个问题。所以最后,

代码语言:javascript
复制
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);
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24339576

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档