Auflösungsanpassung funktioniert nicht

  • Themenstarter Themenstarter Sen
  • Beginndatum Beginndatum
S

Sen

Gast
Tag, ich benutze normalerweiße zur Programmierung auf mehrere Auflösung folgenden Trick:

RX = Aktuelle Auflösung;
NX = Optimierte Auflösung;
MX = RX / NX = Multiplikator;

So benutze ich z.B. zum zeichnen feste Pixel Auflösungen und setze dahinter noch ein " * MX " und das wars dann an Anpassungen. Das habe ich nun bei Android auch versucht. Genauer: Es um einen Text, der nicht richtig possitioniert wird. Der Code sieht dabei so aus:

Java:
void gamefield( Canvas c ) {
		//right
		paint.setColor( Color.rgb( 220, 220, 250 ) );
		c.drawRect( 0, 0, 600 * gl.mx, gl.ry, paint ); 
		
		//left
		paint.setColor( Color.rgb( 200, 200, 230 ) );
		c.drawRect( 600 * gl.mx, 0, gl.rx, gl.ry, paint ); 
		
		paint.setColor( Color.rgb( 0, 0, 0 ) );
		paint.setTextSize( 40 );
		
		c.drawText(    "Score:"   , 654 * gl.mx, 70 * gl.my , paint);
		c.drawText( "" + gl.score , 654 * gl.mx, 115 * gl.my, paint);
	}

Und auf dem Handy sieht das so aus:
http://www10.pic-upload.de/03.10.12/8hv7r17p9um.png

Und beim drehen:
http://www10.pic-upload.de/03.10.12/ibtj6t7y8pbo.png

Ahja, die Werte der Variablen sind:
vor der Drehung:
gl.rx = 800
gl.ry = 1280
gl.mx = 1.0
gl.my = 1.0

Danach:
gl.rx = 1280
gl.ry = 800
gl.mx = 1.6
gl.my = 0.625

Soweit ich das sehe, sind die Zahlen auch in Ordnung. Für mich sieht es eher so aus, als würde etwas mit der Schrift passieren. Könnte es sein, dass descent/ascent sich verändern und darauf Einfluß haben oder stimmt meine Methode nicht?
 
Was verstehst du denn unter nicht richtig positioniert? Dass die 0 nach dem drehen näher am S ist? Das ist ja klar wenn du eine feste Textgrösse verwendest und nach dem drehen die Gesamthöhe kleiner ist.
 
Moment, stimmt. Ich muss die Textgröße ja ebenfalls anpassen 😀

War doch etwas einfacher, als ich dachte. Danke^^
 

Zurück
Oben