Back to project page jmjuanesFramework.
The source code is released under:
MIT License
If you think the Android project jmjuanesFramework listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package jmjuanes.util; //from w ww . j ava 2s . c o m import java.util.ArrayList; import jmjuanes.Config; import android.graphics.Bitmap; import android.graphics.Canvas; public class Ui { //Anchura por defecto private static int def_anc = 400; //Si ya se han iniciado private static boolean calculado = false; //Anchura y algura de la pantalla public static int width, height; //Proporcion public static float scale; //Clase para la zona de juego public static class Zone { //Anchura y altura public static int width, height; //Posicion public static int px, py; } //Clase para el fondo public static class Background { //Anchura y altura public static int width, height; //Posicion public static int px, py; } //Constructor public static void Start(int anc, int alt) { //Comprobamos si ya los hemos calculado if(calculado == false) { //Guardamos la altura y la anchura height = alt; width = anc; //Creamos la nueva escala scale = (float) width/def_anc; //Dimension de la zona Zone.width = (int)( 350*scale); Zone.height = (int)( 450*scale); //Dimension del fondo Background.width = (int)( 400*scale); Background.height = (int)( 800*scale); //Comprobamos si es landscape if(Config.Mode == "landscape") { //Creamos la nueva escala scale = (float) height/def_anc; //Dimension de la zona Zone.width = (int)( 450*scale); Zone.height = (int)( 350*scale); //Dimension del fondo Background.width = (int)( 800*scale); Background.height = (int)( 400*scale); } //Posicion de la zona Zone.px = (int)( anc/2 - Zone.width/2); Zone.py = (int)( alt/2 - Zone.height/2); //Posicion del fondo Background.px = (int)( anc/2 - Background.width/2); Background.py = (int)( alt/2 - Background.height/2); } //Marcamos para que ya no se puedan volver a calcular calculado = true; } //Funcion que situa una imagen public static void DrawImgScale(Canvas canvas, Bitmap img, int px, int py) { if(img != null) canvas.drawBitmap(img, px*Ui.scale, py*Ui.scale, null); } //Funcion que situa una imagen en la zona public static void DrawZoneImg(Canvas canvas, Bitmap img, int px, int py) { if(img != null) canvas.drawBitmap(img, Ui.Zone.px + px*Ui.scale, Ui.Zone.py + py*Ui.scale, null); } //Funcion que situa una imagen sin aplicar la escala public static void DrawImg(Canvas canvas, Bitmap img, int px, int py) { if(img != null) canvas.drawBitmap(img, px, py, null); } //Funcion que situa una imagen de fondo public static void DrawBackgroundImg(Canvas canvas, Bitmap img) { if(img != null) canvas.drawBitmap(img, Ui.Background.px, Ui.Background.py, null); } public static boolean Touch(int x, int y, int px, int py, int anc, int alt) { //Esta funci?n devuelve true si el punto (x,y) est? dentro del rect?ngulo de v?rtices (px, py) // y de anchura anc y altura alt if( px <= x && x <= px + anc) { if( py <= y && y <= py + alt) { //Si ambos son ciertos, decimos que si que ha pulsado return true; } } //Devolvemos false return false; } public static boolean TouchScale(int x, int y, int px, int py, int anc, int alt) { //Esta funci?n devuelve true si el punto (x,y) est? dentro del rect?ngulo de v?rtices (px, py) // y de anchura anc y altura alt if( px*Ui.scale <= x && x <= px*Ui.scale + anc*Ui.scale) { if( py*Ui.scale <= y && y <= py*Ui.scale + alt*Ui.scale) { //Si ambos son ciertos, decimos que si que ha pulsado return true; } } //Devolvemos false return false; } public static boolean TouchZone(int x, int y, int px, int py, int anc, int alt) { //Esta funci?n devuelve true si el punto (x,y) est? dentro del rect?ngulo de v?rtices (px, py) // y de anchura anc y altura alt dentro de la zona if( Ui.Zone.px + px*Ui.scale <= x && x <= Ui.Zone.px + px*Ui.scale + anc*Ui.scale) { if( Ui.Zone.py + py*Ui.scale <= y && y <= Ui.Zone.py + py*Ui.scale + alt*Ui.scale) { //Si ambos son ciertos, decimos que si que ha pulsado return true; } } //Devolvemos false return false; } public static void NumAImg(Canvas canvas, ArrayList<Bitmap> img, int num, int px, int py, int dir, int digits) { //Esta funcion pasa un nuero num a imagen, provenientes de un vector de imagenes //En una posicion px y py de la pantalla (SIN ESCALAR) //Descomponemos el entero en digitos ArrayList<Integer> n = new ArrayList<Integer>(); //Contador de digitos int dig = 0; //Si el numero es 0 if(num == 0) { //Lo ponemos tal cual n.add(0); //Hay un digito dig = 1; } else { //Mientras el numero no sea 0 while( num != 0) { //Ponemos el resto n.add((int) num%10); //Quitamos la ultima cifra num = (int) num/10; //Aumentamos el contador de digitos dig++; } } //Comprobamos los digitos if(dig < digits) { //Sumamos tantos digitos como falten while(dig < digits) { //Ponemos un 0 al principio n.add(dig, 0); //Aumentamos los digitos dig++; } } //Numero actual int pos = 0; //Anchura de los numeros int anc = img.get(0).getWidth(); //Dependiendo de la direccion if(dir == 1) { for(int i = 0; i < dig; i++) { //Cogemos el numero pos = n.get(dig - i - 1); //Lo situamos Ui.DrawImg(canvas, img.get(pos), px + i*anc, py); } } else { for(int i = 0; i < dig; i++) { //Cogemos el numero pos = n.get(dig - i - 1); //Lo situamos Ui.DrawImg(canvas, img.get(pos), px - (dig - i)*anc, py); } } } }