Skip to content Skip to sidebar Skip to footer

Android Development: Combining Small Tiles/bitmaps Into One Bitmap

Im trying to get all my small images like grass, water and asphalt and so on, into one bitmap. I have an Array that goes like this: public int Array[]={3, 1, 3, 3, 1, 1, 3, 3, 3, 3

Solution 1:

Okay so the following snippet should combine two images side by side. I didn't want to extrapolate for 10, but I'm sure you'll figure out the for loops by yourself.

public Bitmap combineImages(Bitmap c, Bitmap s) {
    Bitmapcs=null; 

    int width, height = 0; 

    if(c.getWidth() > s.getWidth()) { 
      width = c.getWidth() + s.getWidth(; 
      height = c.getHeight()); 
    } else { 
      width = s.getWidth() + s.getWidth(); 
      height = c.getHeight(); 
    } 

    cs = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888); 

    CanvascomboImage=newCanvas(cs); 

    comboImage.drawBitmap(c, 0f, 0f, null); 
    comboImage.drawBitmap(s, c.getWidth(), 0f, null); 
    //notice that drawing in the canvas will automagically draw to the bitmap//as wellreturn cs; 
  } 

Solution 2:

If all the tiles are the same size you can create one large Bitmap and draw all the tiles in the right location. For example:

privatestaticfinalintMAP_WIDTH=10; // in tilesprivatestaticfinalintMAP_HEIGHT=10;
privatestaticfinalintTILE_WIDTH=10;
privatestaticfinalintTILE_HEIGHT=10;

public Bitmap createMap() {
    BitmapmainBitmap= Bitmap.createBitmap(TILE_WIDTH * MAP_WIDTH, TILE_HEIGHT * MAP_HEIGHT,
            Bitmap.Config.ARGB_8888);
    CanvasmainCanvas=newCanvas(mainBitmap);
    PainttilePaint=newPaint();
    for (inti=0; i < map.length; i++) {
        // Grab tile image (however you want - don't need to follow this)Bitmaptile= BitmapFactory.decodeResource(getResources(), getResources()
                .getIdentifier(String.valueOf(map[i]), "drawable", "your.package"));

        // Draw tile to correct location
        mainCanvas.drawBitmap(tile, (i % MAP_WIDTH) * TILE_WIDTH,
                (i / MAP_WIDTH) * TILE_HEIGHT, tilePaint);
    }
    return mainBitmap;
}

Post a Comment for "Android Development: Combining Small Tiles/bitmaps Into One Bitmap"