> BTW, the Android engineer who wrote the throwIfRecycled method should > be lynched. I understand that it saves an "if", as in:
Lynched??? Really. Wow, that would be a little excessive, don't you think? I understand your frustration with the implementation of the throwIfRecylced method, but to say the engineer should be lynched is just ridiculous. Perhaps stopping to read your post prior to hitting "send" would not be a bad idea. I think there are more tactful ways of addressing issues than to attack the google developers. An OS and the accompanying Framework are no small project, and I think most of us realized there would be issues along the way, especially with the hardware being released with a 1.0 SDK. Long story short, be careful not to bite off the hand that feeds you. Okay google isn't feeding you, but they have produced something that has great potential, and as a community we need to come together and help out in any which way we can. And as JBQ said, if you have a better implementation send it on up to the google guys to review and possibly implement. ~clark On Mar 7, 8:49 am, Stoyan Damov <[email protected]> wrote: > BTW, the Android engineer who wrote the throwIfRecycled method should > be lynched. I understand that it saves an "if", as in: > > if (bitmap.isRecycled()) throw ... > > but s/he didn't even implement it defensively enough and the method > crashes if passed a null pointer. > > Now, you either make the method super safe so it checks for both a > null pointer and whether the bitmap is recycled, or you let the user's > code crash miserably (preferred). > I will *very* much appreciate a Canvas::drawBitmapFast() or > drawBitmapUnsafe() method which doesn't check anything, because the > current implementation of drawBitmap(Bitmap, Paint) spends as much as > 9%!!!!! in throwIfRecycled, which IMVHO is unacceptable. > > Cheers > > On Sat, Mar 7, 2009 at 6:37 PM, Marco Nelissen <[email protected]> wrote: > > > On Fri, Mar 6, 2009 at 5:59 AM, William <[email protected]> wrote: > > >> I am drawing bitmaps left and right and I hit this issue where I > >> create a bitmap in one section of my code and when I later try to draw > >> on it using canvas, i get bitmap recycled. but I did not null if out, > >> or call its recycle method. > > >> Description: > > >> I have a main Class that extends View that when first loads, initiates > >> the main screen which loads/draws on bitmaps and no problem. I then > >> added a key event that causes this screen to go away and load the next > >> screen. The screen logic is encapsulated in a class that I already > >> instantiated in the Main Class constructor and in my second screen its > >> constructor is this code: > > >> staticBg = new BitmapDrawable(Bitmap.createBitmap(320, 240, > >> Bitmap.Config.RGB_565)); > >> staticGr = new Canvas( staticBg.getBitmap() ); > > >> at a later time, from my first screen when I push a button, i call my > >> init() function that trys load screen two which does a draw to this > >> bitmap and I get the following error: > > >> 03-06 08:52:56.301: ERROR/AndroidRuntime(846): > >> java.lang.NullPointerException > >> 03-06 08:52:56.301: ERROR/AndroidRuntime(846): at > >> android.graphics.Canvas.throwIfRecycled(Canvas.java:890) > >> 03-06 08:52:56.301: ERROR/AndroidRuntime(846): at > >> android.graphics.Canvas.drawBitmap(Canvas.java:911) > > >> It is saying my bitmap is recycled BUT from what I understand that > >> does not happened unless you explicitly call it or the garbage > >> collector does when there are no more references to it BUT i obviously > >> still have a reference to it. What am I doing wrong? > > > Are you sure it's your bitmaps it's complaining about, and not some > > other bitmap? > > Are you using the drawing cache in any way? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en -~----------~----~----~----~------~----~------~--~---

