Android Development: Combining small tiles/bitmaps into one bitmap

后端 未结 2 1289
余生分开走
余生分开走 2021-01-21 15:32

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         


        
2条回答
  •  挽巷
    挽巷 (楼主)
    2021-01-21 16:08

    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:

    private static final int MAP_WIDTH = 10; // in tiles
    private static final int MAP_HEIGHT = 10;
    private static final int TILE_WIDTH = 10;
    private static final int TILE_HEIGHT = 10;
    
    public Bitmap createMap() {
        Bitmap mainBitmap = Bitmap.createBitmap(TILE_WIDTH * MAP_WIDTH, TILE_HEIGHT * MAP_HEIGHT,
                Bitmap.Config.ARGB_8888);
        Canvas mainCanvas = new Canvas(mainBitmap);
        Paint tilePaint = new Paint();
        for (int i = 0; i < map.length; i++) {
            // Grab tile image (however you want - don't need to follow this)
            Bitmap tile = 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;
    }
    

提交回复
热议问题