Я разработал игру, которая отлично масштабируется и помещается на экране моего мобильного телефона. Однако на эмуляторе и других устройствах, которые я тестировал на нем, он может занимать только 20-50% экрана, потому что эти экраны были больше. Как я могу увеличить холст, специфичный для каждого устройства?
Я попытался определить ширину и высоту страницы и изменить положение прямоугольников, текста и т. Д. В зависимости от масштаба, в котором размер моего экрана делится на размер нового экрана, чтобы определить, насколько он больше. однако было бы не принимать десятичное / двойное значение.
Я часами изучал эту проблему и ничего не нашел.
Код графической нити / холста показан ниже:
public void run() {
while (isRunning){
if (!holder.getSurface().isValid()){
continue;
}
Canvas canvas = holder.lockCanvas();
canvas.drawARGB(255,255,255,255);
Paint paint = new Paint();
paint.setTextSize(32);
paint.setColor(Color.BLACK);
canvas.drawText( "Next Block",525,80,paint);
paint.setColor(NextBlock);
canvas.drawRect(525 , 100 ,675, 250,paint);
paint.setColor(Color.BLACK);
canvas.drawText("Held Block",525,380,paint);
paint.setColor(HeldBlock);
canvas.drawRect(525,400,675,550,paint);
paint.setColor(Color.BLACK);
paint.setTextSize(52);
canvas.drawText("Score",525,700,paint);
paint.setTextSize(82);
canvas.drawText(String.valueOf(score),525,800,paint);
paint.setTextSize(32);
for (int x = 0; x < 3; x++){
for (int y= 0; y < 5; y++){
paint.setColor(BlocksGrid[x][y]);
canvas.drawRect((squareSize * x) + (gap * x) + startX, (squareSize * y) + (gap * y) + startY,(squareSize * x) + (gap * x) + startX + squareSize,(squareSize * y) + (gap * y) + startY + squareSize,paint);
}
paint.setColor(Color.GREEN);
if (height[x] < 0){
paint.setColor(Color.RED);
}
canvas.drawRect((squareSize * x) + (gap * x) + startX, 870,(squareSize * x) + (gap * x) + startX + squareSize,945,paint);
}
holder.unlockCanvasAndPost(canvas);
}
}
Я думаю, что этого должно быть достаточно, однако, если вам понадобится больше кода, пожалуйста, спросите.
Спасибо за помощь, поскольку я часами пытался решить эту проблему до окончательного завершения программы!