I think you misunderstand me. They are in different functions. One is
on onCreate and the other is in onDraw. They are differenct canvas.

On Apr 8, 1:49 pm, Rui Martins <[EMAIL PROTECTED]> wrote:
> You are doing something really strange!
>
> First you setup a bitmao as your canvas
>                bitmap = Bitmap.createBitmap(100, 100, true);
>                 Canvas canvas = new Canvas(bitmap);
>
> But later, you use  your canvas ( which uses your bitmap as it's
> buffer) and you draw on it, using itself, i.e. you feedback the same
> bitmap
>                 canvas.drawBitmap(bitmap, 10, 10, null);
>
> This is shure to fail, since the copy behaviour is not defined how it
> should behave in case you  are copying it to itself.
>
> Use different bitmaps, one for canvas, and another for whatever you
> are drawing.
>
> TIP: if you set thePixels(...) of your bitmap (buffer) you don't need
> to draw those same pixels after, since they are already there !
>
> On 8 abr, 04:20, Gibson <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > hi all,
>
> > I wrote following code.
>
> > class MyView extends View {
> >         Bitmap bitmap;
>
> >         public MyView(Context context) {
> >                 super(context);
> >                 Drawable drawable =
> > context.getResources().getDrawable(R.drawable.icon);
> >                 bitmap = Bitmap.createBitmap(100, 100, true);
> >                 Canvas canvas = new Canvas(bitmap);
> >                 drawable.setBounds(0, 0, 100, 100);
> >                 drawable.draw(canvas);
> >         }
>
> >         @Override
> >         protected void onDraw(Canvas canvas) {
> >                 Paint paint = new Paint();
> >                 paint.setARGB(255, 255, 255, 255);
> >                 canvas.drawRect(0, 0, screenWidth, screenHeight, paint);
> >                 canvas.drawBitmap(bitmap, 10, 10, null);
> >                 int[] imagedata = new int[100 * 100];
> >                 bitmap.getPixels(imagedata, 0, 100, 0, 0, 100, 100);
> >                 bitmap.setPixels(imagedata, 0, 100, 0, 0, 100, 100);
> >                 invalidate();
>
> >                 try {
> >                         Thread.sleep(100);
> >                 } catch (InterruptedException e) {
> >                 }
> >         }
>
> >         int screenWidth, screenHeight;
>
> >         @Override
> >         protected void onSizeChanged(int i, int j, int k, int l) {
> >                 screenWidth = i;
> >                 screenHeight = j;
> >                 super.onSizeChanged(i, j, k, l);
> >         }
>
> > }
>
> > These code just retrieve the pixel data and then put them back. But
> > why i got different result on the screen. It seems like the retrieve
> > method change some pixel? Can anybody help me with this please?
> > Thanks.
>
> > BR
> > Gibson
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
[EMAIL PROTECTED]
Announcing the new M5 SDK!
http://android-developers.blogspot.com/2008/02/android-sdk-m5-rc14-now-available.html
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to