Combinar dos mapas de bits y guardar como formato jpg en android?

Tengo dos mapa de bits en mi proyecto lo que necesito es que necesito para combinar esos dos mapa de bits y combinar los mapa de bits a una sola imagen voy a mostrar mi código

public class FotosurpriseActivity extends Activity { /** Called when the activity is first created. */ Bitmap overlay; Paint pTouch; int X = -100; int Y = -100; Canvas c2; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); requestWindowFeature(Window.FEATURE_NO_TITLE); Bitmap mBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.android); Bitmap mBitmapover = BitmapFactory.decodeResource(getResources(), R.drawable.ss); overlay = BitmapFactory.decodeResource(getResources(),R.drawable.ss).copy(Config.ARGB_8888, true); c2 = new Canvas(overlay); pTouch = new Paint(Paint.ANTI_ALIAS_FLAG); // pTouch.setXfermode(new PorterDuffXfermode(Mode.TARGET); pTouch.setColor(Color.TRANSPARENT); pTouch.setMaskFilter(new BlurMaskFilter(15, Blur.NORMAL)); setContentView(new BitMapView(this, mBitmap,mBitmapover)); } class BitMapView extends View { Bitmap mBitmap = null; Bitmap mBitmapover = null; public BitMapView(Context context, Bitmap bm, Bitmap bmover) { super(context); mBitmap = bm; mBitmapover = bmover; } @Override public boolean onTouchEvent(MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: { X = (int) ev.getX(); Y = (int) ev.getY(); invalidate(); break; } case MotionEvent.ACTION_MOVE: { X = (int) ev.getX(); Y = (int) ev.getY(); invalidate(); break; } case MotionEvent.ACTION_UP: break; } return true; } @Override protected void onDraw(Canvas canvas) { // called when view is drawn Paint paint = new Paint(); paint.setFilterBitmap(true); // The image will be scaled so it will fill the width, and the // height will preserve the image’s aspect ration /* double aspectRatio = ((double) mBitmap.getWidth()) / mBitmap.getHeight(); Rect dest = new Rect(0, 0, this.getWidth(),(int) (this.getHeight() / aspectRatio)); double aspectRatio2 = ((double) mBitmapover.getWidth()) / mBitmapover.getHeight(); Rect dest2 = new Rect(0, 0, this.getWidth(),(int) (this.getHeight() / aspectRatio2)); canvas.drawBitmap(mBitmap, null, dest, paint); canvas.drawBitmap(mBitmapover, null, dest2, paint); */ //draw background canvas.drawBitmap(mBitmap, 0, 0, null); //copy the default overlay into temporary overlay and punch a hole in it c2.drawBitmap(mBitmapover, 0, 0, null); //exclude this line to show all as you draw c2.drawCircle(X, Y, 80, pTouch); //draw the overlay over the background canvas.drawBitmap(overlay, 0, 0, null); } } } 

¿Cómo puedo hacer que esto suceda?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.