I use something like the following function. It really depends what you mean by "merge". Do you mean average, alpha over, multiply, add, etc.? Anyway, you can change the arithmetic here to suit your needs. The important parts are that you copy the bitmap you wish to change so that you have a mutable/changeable bitmap, and that you call setPixel() to change the bitmap pixels to their new color.
In this example, I'm looping over all the pixels and assuming both bitmaps are the same size. You can also do this with a canvas, but this approach is the most flexible. It is not terribly fast. I only use it at the startup of my program. But unless you are calling it repeatedly, it shouldn't slow you down too much. private static Bitmap applyMask(Bitmap tileBitmap, Bitmap maskBitmap) { Bitmap workingBitmap = tileBitmap.copy(bitmapConfig, true); // IMPORTANT int width = tileBitmap.getWidth(); int height = tileBitmap.getHeight(); for(int x=0; x<width; x++){ for(int y=0; y<height; y++){ int maskPixel = maskBitmap.getPixel(x, y); int tilePixel = tileBitmap.getPixel(x, y); //change this line for different color mixing types int newPixel = Color.argb( Color.red(maskPixel), Color.red(tilePixel), Color.green(tilePixel), Color.blue(tilePixel)); workingBitmap.setPixel(x, y, newPixel); //IMPORTANT } } return workingBitmap; } On Mar 16, 1:08 am, NapoleonLiu <liuwa...@neusoft.com> wrote: > I am a new one in UI coding. So may be my way is not the best.. > > Panit mPaint = new Paint(); > mPaint.setXfermode(new PorterDuffXfermode(Mode.DST_IN)); > mPaint.setAlpha(XX); > notice that Mode.DST_IN is important(Better to see it's api-doc.) > Use this paint to draw a "ALPHA_8" bitmap on your org bitmap ,then you can > get a Bitmap which have special alpha. > So you can get two special alpha bitmap ,then draw them with Mode.DST_IN. > I think you will get you want. > But there must be a nice way, to do a calculation on the alpha area of > bitmap. > hope it can help you. > > On Tue, 16 Mar 2010 13:20:01 +0800, BobG <bobgard...@aol.com> wrote: > > How about set the Alpha channel in each one to 50% so they are both > > half see through? > > --------------------------------------------------------------------------------------------------- > Confidentiality Notice: The information contained in this e-mail and any > accompanying attachment(s) > is intended only for the use of the intended recipient and may be > confidential and/or privileged of > Neusoft Corporation, its subsidiaries and/or its affiliates. If any reader of > this communication is > not the intended recipient, unauthorized use, forwarding, printing, storing, > disclosure or copying > is strictly prohibited, and may be unlawful.If you have received this > communication in error,please > immediately notify the sender by return e-mail, and delete the original > message and all copies from > your system. Thank you. > --------------------------------------------------------------------------------------------------- -- 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 android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en