【问题标题】:Clearing image in CircularImageView does not work | StackoverFlowException while setting image in CircularImageView在 CircularImageView 中清除图像不起作用 |在 CircularImageView 中设置图像时出现 StackoverFlowException
【发布时间】:2015-06-25 11:37:18
【问题描述】:

我正在使用https://github.com/Pkmmte/CircularImageView 获取图片通知。如果已经设置,我想清除 imageView 中的图像。没有任何解决方案建议@How to clear an ImageView in Android?。如果您使用过 CirularImageView,我该如何清除图像?

编辑 编辑
我想我可以在重置图像后尝试显示空白的灰色视图,但由于这不起作用,我正在编辑问题以告诉你实际问题。

这里是:
我正在使用 RecyclerView 向朋友展示。我的一个朋友列表没有他的照片,所以我尝试显示默认头像,即 SVG 图像。当我第一次向下滚动到他的视图时,它完美地显示出来。当我第二次再次滚动回他时,它会引发 StackOverFlow 异常。

mDefaultUserPhoto = MrVector.inflate(

            getResources(), R

                    .drawable.vector_default_user_photo);
}

circularIV.setImageDrawable(mDefaultUserPhoto); // This is what hits for every friend when scrolled and where the StackoverFlowException occured..

追踪:

E/InputEventReceiver﹕ Exception dispatching input event.
 D/AndroidRuntime﹕ Shutting down VM
/dalvikvm﹕ threadid=1: thread exiting with uncaught exception (group=0x41965da0)  
﹕ Uncaught exception start!
 java.lang.StackOverflowError
System.err﹕ at java.lang.ref.FinalizerReference.add(FinalizerReference.java:54)  
System.err﹕ at android.graphics.Bitmap$BitmapFinalizer.<init>(Bitmap.java:1644)  
System.err﹕ at android.graphics.Bitmap.<init>(Bitmap.java:152)  
System.err﹕ at android.graphics.Bitmap.nativeCreate(Native Method)  
System.err﹕ at android.graphics.Bitmap.createBitmap(Bitmap.java:903)  
System.err﹕ at android.graphics.Bitmap.createBitmap(Bitmap.java:880)  
System.err﹕ at android.graphics.Bitmap.createBitmap(Bitmap.java:847)  
System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:327)  
System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  

System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  View.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)   
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at com.pkmmte.view.CircularImageView.drawableToBitmap(CircularImageView.java:330)  
/System.err﹕ at com.pkmmte.view.CircularImageView.invalidate(CircularImageView.java:260)  
/System.err﹕ at android.widget.ImageView.invalidateDrawable(ImageView.java:211)  
/System.err﹕ at android.graphics.drawable.Drawable.invalidateSelf(Drawable.java:376)  
/System.err﹕ at android.graphics.drawable.Drawable.setBounds(Drawable.java:185)  
/System.err﹕ at android.widget.ImageView.configureBounds(ImageView.java:956)  
/System.err﹕ at android.widget.ImageView.updateDrawable(ImageView.java:738)  
/System.err﹕ at android.widget.ImageView.setImageDrawable(ImageView.java:431)  
/System.err﹕ at com.app.friends..adapters.FriendsAdapter.setPicture(FriendsAdapter.java:175)  
/System.err﹕ at com.app.friends..adapters.FriendsAdapter.onBindViewHolder(FriendsAdapter.java:124)  

【问题讨论】:

  • 您所说的“如果已设置,则清除 imageView 中的图像”是什么意思。你能再解释一下吗?
  • setImageBitmap(null) 不起作用?
  • @Chandrakanth,我的意思是我不想在视图中显示任何图像。我正在使用 RecyclerView 来显示朋友列表。 RecyclerView 重新使用刚刚显示并从屏幕上删除的视图。当它重新使用时,虽然新数据(朋友)中没有图像,但它使用现有图像,即其他朋友的脸。如果我继续滚动,它会根据可用性每次显示不同的面孔。这一切在这里都没有必要,但为了更好地理解上下文。
  • @PedroOliveira,不,它没有用。
  • 如果没有朋友的头像,你为什么不按照我的回答隐藏ImageView?

标签: android image imageview


【解决方案1】:

试试这个:

boolean checkDrawable = (ImageView.getDrawable() != null);
if(checkDrawable ) {
 // imageView has image
}
else {
// no image assigned in image view
}

【讨论】:

    【解决方案2】:

    尝试以下方法,

    imageview.setImageResource(0);
    

    imageView.setBackground(null);
    

    【讨论】:

      【解决方案3】:

      建议的方法不起作用,因为正如您在CircleImageView 的来源中看到的那样,开发人员对onDraw 中设置的Bitmap 进行了验证:

          @Override
      public void onDraw(Canvas canvas) {
          // Don't draw anything without an image
          if(image == null)
              return;
          ...
          ...
      }
      

      所以,这意味着如果你将null设置为位图,这个方法将不会被执行,仍然会绘制旧的位图。我的建议只是隐藏视图,使用circleImageView.setVisibility(View.GONE);circleImageView.setVisibility(View.INVISIBLE);如果您希望视图占用布局建议的空间。

      【讨论】:

        【解决方案4】:
        try this..
        
        
        class RoundedImageView extends ImageView {
        
            public RoundedImageView(Context context) {
                super(context);
        
            }
        
            public ChimmerRoundedImageView(Context context, AttributeSet attrs) {
                super(context, attrs);
        
            }
        
            public ChimmerRoundedImageView(Context context, AttributeSet attrs,
                    int defStyle) {
        
                super(context, attrs, defStyle);
            }
        
            @Override
            protected void onDraw(Canvas canvas) {
                float radius = 90.0f; // angle of round corners
                Path clipPath = new Path();
                RectF rect = new RectF(0, 0, this.getWidth(), this.getHeight());
                clipPath.addRoundRect(rect, radius, radius, Path.Direction.CW);
                canvas.clipPath(clipPath);
        
                super.onDraw(canvas);
        
            }
        }
        

        【讨论】:

        • 我试过这个,但我遇到了一些问题,但我遇到了演员表异常。但我想坚持使用 CircularImageView,因为它也用于我的代码的其他部分并且已经过测试。
        • 你能告诉我你的要求和你得到的例外
        【解决方案5】:

        RecyclerView.AdapteronBindViewHolder() 中,如果您的位图为空,则使用空图像或默认图像创建一个位图,然后将其设置为CircularImageVeiw

           if(bitmap==null){
                //Creating empty bitmap
                bitmap= Bitmap.createBitmap(100,100, Bitmap.Config.ARGB_8888);
            }
           viewHolder.imageView.setImageBitmap(bitmap);
        

        【讨论】:

          【解决方案6】:

          我找不到如何清除 CircularImageView 中的图像的方法,但可以找到 StackOverflowException 的原因。我使用毕加索作为“不清除”缓存的缓存库。所以转移到 UniversalImageLoader 工作正常,没有 OutOfMemoryException 或 StackOverflowException。

          如果您想坚持使用毕加索,那么您可能需要添加代码以清除缓存。这个链接有帮助-> Clear Cache memory of Picasso

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-04-14
            相关资源
            最近更新 更多