Forums Android

Liseuse numérique - gestion des pages

Liseuse numérique - gestion des pages

Message non lupar toony442 » 18 Fév 2013, 20:34

Salut à tous !

Je suis en train de développer une application de lecture de livres numérique et j'ai un problème concernant la gestion des pages.

J'ai une grande chaine de caractères qui contient le texte du chapitre 1 de mon livre par exemple. Je voudrais pouvoir diviser cette chaine de caractère en pages que l'utilisateur pourrait tourner pour lire le chapitre. Mais je n'arrive pas à trouver comment diviser une chaine en pages afin que l'écran soit rempli de texte et que lorsque l'utilisateur tourne la page (change de vue) il accède à la suite.

Merci d'avance de votre aide :)
toony442 Gamer du Dimanche
Gamer du Dimanche
Messages: 18
Inscription: 02 Avr 2011, 12:51
Pays: France

Re: Liseuse numérique - gestion des pages

Message non lupar marshallino16 » 19 Fév 2013, 09:53

Bonjour,

Je t econseil de faire une boucle for jusqu'a EOF te permettant de parcourir intégralement ta chaîne de caractère et tous les tant de caractère ça incrémente un nombre de page et chaque lira ta chaîne de caractère jusqu'a tant de caractères. ;)

Au premier abord c'est comme ça que je verrais le truc.
marshallino16 Gamer Argent
Gamer Argent
Messages: 3777
Inscription: 12 Déc 2009, 18:21
Localisation: Toulouse
Pays: France
Sexe: Homme

Re: Liseuse numérique - gestion des pages

Message non lupar toony442 » 20 Fév 2013, 00:52

Déjà merci de ta réponse :)

Le problème avec cette technique c'est que lorsque j'ai des dialogues ou un nouveau paragraphe par exemple je ne vais pas pouvoir mettre autant de caractères dans la page que si je n'avais pas eu ces retour à la ligne...

Je ne vois vraiment pas comment faire :(
toony442 Gamer du Dimanche
Gamer du Dimanche
Messages: 18
Inscription: 02 Avr 2011, 12:51
Pays: France

Re: Liseuse numérique - gestion des pages

Message non lupar marshallino16 » 22 Fév 2013, 00:55

Dans ce cas prends le problème dans un autre sens. Il te faut analyser les expression régulière "/n" pour te permettre de reconnaitre des paragraphes.

Donc si tu arrives a tant de caractères, tu analyses si le prochain est un "/n", si ça ne l'ai pas, tu récupères là où était le précédent et tu coupes a cet endroit là.

Du coup, ca te créé une nouvelle page, dans la théorie ça devrait passer, par contre en pratique dans ton For qui parcours tu devrais avoir quelque chose comme

For(int i=0; i<livre.length ; ++i)
{
count ++;
Si(count = nbcaractères)
{
On affiche dans une page
Si(livre[i+1] == "/n/n") on ne fait rien c'est bon
Else on parcours la chaine parcourue à l'envers et on test chaque caractère avec "/n/n"

Etc
}
}
marshallino16 Gamer Argent
Gamer Argent
Messages: 3777
Inscription: 12 Déc 2009, 18:21
Localisation: Toulouse
Pays: France
Sexe: Homme

Re: Liseuse numérique - gestion des pages

Message non lupar toony442 » 25 Fév 2013, 02:30

Malheureusement je ne peux pas faire comme ca car mon fichier ne contient pas de \n...
et puis même si je faisais ca le but c'est que ma page soit remplie complètement en coupant au \n je n'arriverais jamais a une page de taille identique a chaque fois
toony442 Gamer du Dimanche
Gamer du Dimanche
Messages: 18
Inscription: 02 Avr 2011, 12:51
Pays: France


 

Retourner vers Entraide et assistance au développement