Aller au contenu

Creation d'une interface graphique sans ressource layout


Recommended Posts

Bonjour, je suis entrain de travailler sur un projet tout en étant debutant dans la creation d'application android.

 

Mon application doit aller lire les données dans un fichier Xml, en extraire les parametres abscisses, ordonnées, longueur et largeur necessaire pour concevoir un bouton personnalisé.

l'objectif est de parametrer le positionnement et les dimensions des boutons de commande de mes machines.

 

Comment je procède:

 

1- j'ai crée un fichier de definition au format xml (machine.xml);

 

<?xml version="1.0" encoding="ISO-8859-1"?>    
<interfaces>
    <machine>
        <bouton>
            <label>bouton1</label>
            <coordonnees>
                <abscisse>12</abscisse>
                <ordonnee>12</ordonnee>                
            </coordonnees>
            <dimensions>
                <longueur>12</longueur>
                <largeur>12</largeur>
            </dimensions>
        </bouton>       
    </machine>
</interfaces>
 

2- j'ai utilisé un parser Sax pour analyser lire le document afin d'en extraire les données (longueur, largeur, abscisse, ordonnee)

 

public void characters(char ch[], int start, int length)
                throws SAXException {
            if (babscisse) {
                abso = Integer.parseInt(new String(ch, start, length));
                buffer.append("\n\n ABSCISSE : "
                        + new String(ch, start, length));

            }
            if (bordonne) {
                ordo = Integer.parseInt(new String(ch, start, length));
                buffer.append("\n ORDONNEE : " + new String(ch, start, length));
            }
            if (blongueur) {
                longs = Integer.parseInt(new String(ch, start, length));
                buffer.append("\n LONGUEUR : " + new String(ch, start, length));
            }
            if (blargeur) {
                largs = Integer.parseInt(new String(ch, start, length));
                buffer.append("\n LARGEUR : " + new String(ch, start, length));
            }
            if (blabel) {
                int i = 1;
                label = new String(ch, start, length);
                buffer.append("\n LABEL : " + label);
                Button bouton = CreerButton(abso, ordo, longs, largs);
                bouton.setText(label);
                layout.addView(bouton);
            }
        }

 

fonction creerbouton()

 

private Button CreerButton(float x, float y, int width, int hight)
    {
        int id = 1;
        Button bouton = new Button(this);
        bouton.setX(x);
        bouton.setY(y);
        bouton.setWidth(width);
        bouton.setHeight(hight);
        bouton.setTextSize(8);
        bouton.setText("Machine1");
        bouton.setId(id++);
        return bouton;

    }

 

 

3-  problème rencontré: j'obtiens  sur mon émulateur un bouton crée . mais je constate que la position et les dimensions de mon bouton ne changent pas en fonction des parametres (abscisse,ordonne,longueur,largeur).

 

quelqu'un pourrait me venir en aide fin de debloquer ce problème?

Lien vers le commentaire
Partager sur d’autres sites

  • 2 weeks later...

Il n'y a pas tout le code donc difficile de répondre mais je pense que le problème vient du fait que ton app, assez logiquement,  crée le bouton puis lis les dimensions dans le fichier xml. 

 

Plusieurs solutions : 

- ne pas afficher me bouton tant que tu n'a pas lu les dimensions de ton bouton

- stoker ces dimensions dans le fichier res\values\dimens.xml

 

Bon courage ! ;)

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...