IntensifyImageView
IntensifyImageView copied to clipboard
在ViewPage 里面滑动。偶先图片加载不出来!
最开始在项目里发现了这个问题,Viewpage里滑动的时候,偶尔图片加载不出来,然后在小米4上测demo。也发现了这个问题,没有什么异常抛出!有谁遇到过吗?
之后我一直跟代码,发现其
public void load(ImageDecoder decoder){
sendMessage(MSG_IMAGE_SRC, decoder)
...
}
Handle 没有接受到此消息
case MSG_IMAGE_SRC: prepare((ImageDecoder) msg.obj); requestInvalidate(); break;
导致了:public boolean isNeedPrepare(Rect drawingRect)
方法一直返回false;
然后在onDraw()里:
List<ImageDrawable> drawables = mDelegate.obtainImageDrawables(mDrawingRect); canvas.drawBitmap(drawable.mBitmap, drawable.mSrc, drawable.mDst, mPaint);
返回的list.size = 0;图像没有绘制!
看下是否这里获取到的mDrawingRect不对
@Override
protected void onDraw(Canvas canvas) {
getDrawingRect(mDrawingRect);
....
}
魅族p6p上文是偶尔会有图片没加载出来,有时还闪退
可以补充一些出现的crash栈日志内容 @fltwlulu
图片加载不出来的时候放大就崩溃了 java.lang.NullPointerException: Attempt to read from field 'int me.kareluo.intensify.image.f$b.d' on a null object reference at me.kareluo.intensify.image.f.c(IntensifyImageDelegate.java:306) at me.kareluo.intensify.image.f.a(IntensifyImageDelegate.java:499) at me.kareluo.intensify.image.IntensifyImageView.a(IntensifyImageView.java:196) at me.kareluo.intensify.image.d$b.onScale(IntensifyImageAttacher.java:36) at android.view.ScaleGestureDetector.onTouchEvent(ScaleGestureDetector.java:372) at me.kareluo.intensify.image.d.onTouch(IntensifyImageAttacher.java:29) at android.view.View.dispatchTouchEvent(View.java:12621) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:3041) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2728)
我觉得是handler 处理出问题了
mImage 没有被创建出来
或者被回收了
解决方法
解决手机 magic2 系统magic 2.0 (基于emui9.0)