jak połączyć się z dwiema bitmapami jedna nad drugą

Mam dwa obrazy i chcę zapisać jeden obraz bitmapowy nad innym dokładnie w tym samym miejscu, w którym jest obecny, a także przesuwać obraz za pomocą gestu.

public Bitmap combineImages(Bitmap ScaledBitmap, Bitmap bit) {

        int X = bit.getWidth();
        int Y = bit.getHeight();

        Scaled_X = ScaledBitmap.getWidth();
        scaled_Y = ScaledBitmap.getHeight();

        System.out.println("Combined Images");

        System.out.println("Bit :" + X + "/t" + Y);

        System.out.println("SCaled_Bitmap :" + Scaled_X + "\t" + scaled_Y);

        overlaybitmap = Bitmap.createBitmap(ScaledBitmap.getWidth(),
                ScaledBitmap.getHeight(), ScaledBitmap.getConfig());
        Canvas canvas = new Canvas(overlaybitmap);
        canvas.drawBitmap(ScaledBitmap, new Matrix(), null);
        canvas.drawBitmap(bit, new Matrix(), null);

        return overlaybitmap;
    }

Każda pomoc byłaby bardzo mile widziana.

 Hector488816 maj 2012, 13:33
tak, widzę, że moja mapa bitowa bmp2 łączy się z bmp1, ale moim problemem jest to, że chcę dokładnie zapisać, gdzie dwukrotnie stukam bmp2 po pinchzooming bmp2 ..... za pomocą gestu i pojawia się problem, że bmp2 zapisuje według rozmiaru bmp1 ... ....
 parmar prit11 lis 2016, 12:04
 rnrneverdies09 gru 2014, 06:53
@IntelliJAmiya przestań edytować za pomocą „Każda pomoc byłaby bardzo mile widziana.”. Proszę przeczytajstackoverflow.com/help/editing
 dinesh sharma16 maj 2012, 13:24

questionAnswers(2)

możesz połączyć dwie takie bitmapy

public static Bitmap overlay(Bitmap bmp1, Bitmap bmp2) {
    Bitmap bmOverlay = Bitmap.createBitmap(bmp1.getWidth(), bmp1.getHeight(), bmp1.getConfig());
    Canvas canvas = new Canvas(bmOverlay);
    canvas.drawBitmap(bmp1, new Matrix(), null);
    canvas.drawBitmap(bmp2, 0, 0, null);
    return bmOverlay;
}
 Hector488816 maj 2012, 13:14
bmp1 (500, 500) i bmp2 (400,400) tak, spróbuję, ale bmp1 pokazuje swój rzeczywisty rozmiar, ale gdy i pinchzoom bmp2 do (40, 50) zapisuje zgodnie z bmp1 i chcę zapisać, gdzie umieszczam obraz za pomocą gestu. ....
 RajaReddy PolamReddy16 maj 2012, 15:41
.. ok dobrze.....
 Amalan Dhananjayan25 mar 2013, 11:37
Próbuję tego, ale otrzymuję ten błąd „na android.graphics.Canvas.throwIfRecycled (Canvas.java:1025)”
 Akram16 maj 2012, 12:50
jeśli chcę jakieś dopełnienie, aby oba obrazy były wtedy widoczne?
 Hector488816 maj 2012, 15:20
ok ostatecznie rozwiązuję mój problm canvas.drawBitmap (bit, parametr canvas, parametr canvas, null);
 Dimon20 wrz 2012, 09:55
świetna odpowiedź, wielkie dzięki ..

możesz połączyć dwie mapy bitowe, tj. bitmapę na innej mapie bitowej jako nakładkę
wypróbuj poniższy kod:

 public Bitmap bitmapOverlayToCenter(Bitmap bitmap1, Bitmap overlayBitmap) {
        int bitmap1Width = bitmap1.getWidth();
        int bitmap1Height = bitmap1.getHeight();
        int bitmap2Width = overlayBitmap.getWidth();
        int bitmap2Height = overlayBitmap.getHeight();

        float marginLeft = (float) (bitmap1Width * 0.5 - bitmap2Width * 0.5);
        float marginTop = (float) (bitmap1Height * 0.5 - bitmap2Height * 0.5);

        Bitmap finalBitmap = Bitmap.createBitmap(bitmap1Width, bitmap1Height, bitmap1.getConfig());
        Canvas canvas = new Canvas(finalBitmap);
        canvas.drawBitmap(bitmap1, new Matrix(), null);
        canvas.drawBitmap(overlayBitmap, marginLeft, marginTop, null);
        return finalBitmap;
    }  

yourAnswerToTheQuestion