#android
#Android
Вопрос:
Я создаю приложение, которое использует обе библиотеки Android-spinnerwheel и cardsLib. SpinnerWheel работает просто отлично, но когда я пытаюсь использовать swipe для удаления функции 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) {
}
}
Комментарии:
1. В ошибке указано, что ширина и высота должны быть> 0. Вы это проверили?
Ответ №1:
Что ж, решение довольно простое. Похоже, что CardsLib непрерывно рисует ползунок, даже когда он не виден, заставляя его рисовать с шириной / высотой растрового изображения 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);
}