French Définir taille de fenetre d'une activity

cncncn

Member
Licensed User
Bonjour

Je voulais savoir si c'était possible de définir une taille plus réduite que mon écran pour une activité.

Merci pour vos futures réponses

Cordialement
 

klaus

Expert
Licensed User
Je ne suis pas sûr de bien comprendre.
- Est-ce que tu veux que ton application soit plus petite que l'écran. A ma connaissance ça n'est pas possible, à part les Widgets.
- Si c'est dans ton application regarde cette librairie Floating Windows, ou utilise des Panels dans la même Activity.
 

pivar

Member
Licensed User
La question n'a rien à faire là , mais je ne sais pas ou la poser
Je voudrai acheter b4a et j'essaie de comprendre avec la version d'essai ; je coince depuis plusieurs jours sur le graphisme ; comment définir un objet graphique ( que l'on a construit avec des lignes , pixels et texte ) et positionner cet objet à l'endoit que l'on veut puis l'effacer pour le redéplacer autant de fois que l'on veut ; je viens d'un basic mintoris pas facile à écrire ni à debugger mais qui fait cela facilement
J'envoie une carte postale de Strasbourg à celui qui me donne le principe de solution
 

Informatix

Expert
Licensed User
La question n'a rien à faire là , mais je ne sais pas ou la poser
Je voudrai acheter b4a et j'essaie de comprendre avec la version d'essai ; je coince depuis plusieurs jours sur le graphisme ; comment définir un objet graphique ( que l'on a construit avec des lignes , pixels et texte ) et positionner cet objet à l'endoit que l'on veut puis l'effacer pour le redéplacer autant de fois que l'on veut ; je viens d'un basic mintoris pas facile à écrire ni à debugger mais qui fait cela facilement
J'envoie une carte postale de Strasbourg à celui qui me donne le principe de solution
Pour cela, il faut utiliser la classe Canvas, qui est la toile sur laquelle tu vas dessiner tes objets. Si tu lis l'anglais, jette un oeil au guide du débutant écrit par Klaus.
 

pivar

Member
Licensed User
Pour cela, il faut utiliser la classe Canvas, qui est la toile sur laquelle tu vas dessiner tes objets. Si tu lis l'anglais, jette un oeil au guide du débutant écrit par Klaus.
Bon , j'ai pas mal épluché , mais l'accès n'est pas super clair ; j'ai vu avec smiley , ça marche , mais le système effacement , réaffichage est moins bien que ce que je pensais (c'est meilleur avec le basic mintoris)
J'ai vu le programme exemple "horse" dans le users guide et je vais regarder cela de près..bon ,je suis pas un pro ..
A+
 

Informatix

Expert
Licensed User
Bon , j'ai pas mal épluché , mais l'accès n'est pas super clair ; j'ai vu avec smiley , ça marche , mais le système effacement , réaffichage est moins bien que ce que je pensais (c'est meilleur avec le basic mintoris)
J'ai vu le programme exemple "horse" dans le users guide et je vais regarder cela de près..bon ,je suis pas un pro ..
A+
Note que se servir seulement du Canvas pour déplacer un objet dessiné à l'écran est loin d'être la solution la plus performante ou la plus pratique. C'est juste la solution la plus basique, qui ne nécessite pas de bibliothèque supplémentaire. Sache qu'il y a des bibliothèques plus adaptées pour l'animation ou le jeu (AnimationPlus, AcceleratedSurface, libGDX, etc.). Il y a aussi la solution de dessiner le bitmap d'une ImageView et de déplacer l'ImageView.
 

pivar

Member
Licensed User
Merci , j'apprécie l'attention portée à mes remarques de débutant , j'ai confiance et j'ai acheté b4a , mais je vais avoir du travail (beaucoup) pour bien l'utiliser ; je vais commencer avec du basic et une recherche de quelques milliards de nombres premiers dont on affichera une partie en liste ; ensuite , comme j'aime bien calculer , je veux montrer des comètes qui se déplacent sur des trajectoires (aux bonnes vitesses)...alors je lis et relis et j'essaie...
Il reste que ce que je lis est implicitement en objet pour ceux qui possèdent ; moi , bêtement , je vais par exemple buter sur la raison d'un "initialize" et sa vraie justification...mais ça viendra
Mais merci quand même
 

Informatix

Expert
Licensed User
moi , bêtement , je vais par exemple buter sur la raison d'un "initialize" et sa vraie justification...mais ça viendra
Prenons "Dim C As Cercle" comme exemple. Cercle est une classe qui nécessite une position pour le centre et un rayon. Initialize sert à renseigner ces informations (autrement dit à initialiser les variables nécessaires pour rendre l'instance de classe valide):
Initialize(X As Int, Y As Int, Rayon As Int)
Une fois l'objet initialisé, il est prêt à l'emploi. IsInitialized devient alors True.

Contrairement à Java, Basic4Android ne gère pas les constructeurs de classes avec paramètres. On ne peut donc pas écrire quelque chose comme: Dim C As Cercle(20, 15, 150).
 

pivar

Member
Licensed User
Merci , avec une telle assistance , je suis content de mon achat ; bon il va rester des questions à la pelle , mais pour info , pas de connection wifi (ne se trouvent pas) , réussi en usb après de nombreux essais , pas de compilation car il a manqué le zipalign (trouvé dans rfo basic) et l'émulateur qu'on ne trouve pas ; mais bon , la première centaine de lignes marche..
sur b4a:comment dimensionner un tableau dont on ne connaitra la dimension que après des calculs (pas vu de redim)... et du basique : le initialize (merci pour le principe) qui donne des infos peut aussi être "" (vide) et le activity.loadlayout qui n'est pas toujours nécéssaire
 

klaus

Expert
Licensed User
Il n'y a pas de Redim, tu peux simplement utilser Dim qui redimensionnera le tableau.
Activity.LoadLayout sert à charger un fichier layout défini dans le Designer, dans ce cas il ne faut pas Initialize les différents objets.
On peut aussi charger des fichiers layout dans des Panel avec Panel.LoadLayout.
Si on ajoute des objets dans le code il est nécessaire de les initialiser et des les ajouter soit à une Activity ou un Panel.

Je te propose de télécharger une des deux applications ci-dessous qui permettent de lire les fichier d'aide pour toutes les librairies.
B4A XML file help viewer écrit par agraham, ce programm tourne pratiquement en permanence sur mon PC.
Help documentation - B4a Object Browser écrit pas Vader.
 

Informatix

Expert
Licensed User
le initialize (merci pour le principe) qui donne des infos peut aussi être "" (vide)
L'explication est un petit peu compliquée, mais bon, dis-toi que de nombreuses classes ont besoin d'une initialisation en interne avant de pouvoir être utilisables.
L'explication technique, c'est que certaines classes ne sont que des surcouches (wrappers) permettant d'utiliser une autre classe (les classes de l'API Java ou Android). Par exemple, List de Basic4Android est en fait une ArrayList en Java. Quand tu fais "Dim L As List", tu crées une instance de List (List passe de son état virtuel de classe à l'état concret d'objet et cette liste occupe alors de la place en mémoire), mais l'ArrayList sous-jacente n'est pas encore créée (List n'est qu'une coquille vide qui ne sert à rien). C'est l'Initialize de List qui va créer l'instance d'ArrayList.
D'autre part, l'Initialize sert aussi souvent à déclarer le gestionnaire d'événements. La chaîne demandée est le préfixe de l'événément. Par exemple MonBouton.Initialize("Btn") indique à l'objet qu'on voudrait récupérer les événements associés au bouton dans les gestionnaires Btn_Click, Btn_LongClick, Btn_Up et Btn_Down.
 
Last edited:

nico78

Active Member
Licensed User
Très intéressante les explications, merci pour ces infos de compréhension, je suis moi même débutant.
 

pivar

Member
Licensed User
Quand cela commence à faire ce que l'on veut , cela devient agréable , placer les boutons , faire apparaitre ou disparaitre des panels ou utiliser l'excellent listview..je suis étonné de la rapidité du programme compilé ( tableaux et calculs sur des entiers ) , une centaine de millions de calculs en quelques secondes ! bon mais c'est que le début , il y a encore beaucoup à voir..surtout pour le graphisme
Bon , je sais ce commentaire n'a rien à faire ici , mais c'est juste pour dire que b4a est pas mal du tout !
 

pivar

Member
Licensed User
Bon , j'ai fini un premier programme (qui permet de voir tous les nombres premiers jusqu'à 4 000 milliards) même sur un portable très rapidement
j'ai donc appris plein de chose (dont la modif du manifest) , mais , sur un portable , un tout petit truc: à l'ouverture d'un editText, le clavier apparait et la première fois , la fenêtre remonte un peu au dessus du clavier , on voit ce que l'on tape ,on lance le calcul , mais pour un recalcul ,à la deuxième entrée , la fenêtre ne bouge plus et elle cachée par le clavier ; que faudrait-il réinitialiser pour refaire comme la première entrée ?
Comme d'habitude , excusez les innocents car je ne sais pas ou poser la question...la suite sera une bonne digestion de gameview
 
Top