Android Rendering platform Chunk tiles.

Dear JGO-community,

I’ve came across a big issue in the devolpment in my game, the rendering of the tiles within the chunks are causing some FPS drops. So really my question is how to render the tiles of the chunk cpu-efficient? I’ve already tried some solutions but they didn’t really fit the job…

What’ve tried so far:
Code in Chunk.java

public void render(Canvas canvas, Level level){
    	for(int x = 0; x < 16; x++){
    		for(int y = 0; y < 16; y++){
    			if((cx*16+x)*16*level.scale >= level.xOffset - 16*level.scale && (cx*16+x)*16*level.scale <= level.xOffset + level.gameView.width){
        			if((cy*16+y)*16*level.scale >= level.yOffset - 16*level.scale && (cy*16+y)*16*level.scale <= level.yOffset + level.gameView.height){
        				Tile.getTile(tiles[x + y*16]).render(canvas, level, (cx*16 + x)*16*level.scale - level.xOffset, (cy*16 + y)*16*level.scale - level.yOffset);	
        			}
    			}
        	}
    	}
    }

This gave a FPS from 30 to around 20 and was pretty instable, so I rewrote the whole code to something that didn’t used that much forloops:

Code in Level.java

public void render(Canvas c) {
		for(int tileX = (int)((xOffset)/scale)/1; tileX < (int)((xOffset + gameView.width)/scale)/16; tileX++){
			for(int tileY = (int)((xOffset)/scale)/1; tileY < (int)((yOffset + gameView.height)/scale)/16; tileY++){
				for(Chunk chunk : chunkListOpen){
					if(chunk.cx == (int)(tileX/16) && chunk.cy == (int)(tileY/16)){
						chunk.renderTile(c, this, Math.abs(tileX%16), Math.abs(tileY%16));
					}
				}
			}
		}
}

While running this script the FPS was around 3…

chunkListOpen are 3x3 chunks (in which the center chunk is the chunck which the player is located at)

So really the question is how do you render the visible tiles (most times around 20x8tiles) in 9 chunks efficient?
If you have any questions, feel free to ask them.

Edit:
These are all the tiles visible on the screen

for(int tileX = (int)((xOffset)/scale)/1; tileX < (int)((xOffset + gameView.width)/scale)/16; tileX++){
			for(int tileY = (int)((xOffset)/scale)/1; tileY < (int)((yOffset + gameView.height)/scale)/16; tileY++){

Greetings,
Roseslayer