IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Problème de dessin dans un scrollView


Sujet :

Android

  1. #1
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Problème de dessin dans un scrollView
    Bonjour à toutes et à tous,

    Décidément, j'aurai toujours des problèmes avec les affichages.

    Dans une application, si je dessine dans la fenêtre de base, tout se passe bien. Maintenant, je veux faire les mêmes dessin mais dans un scrollView. Bien que l'écran réponde aux sollicitations des touchés, aucun dessin n'apparaît. Voici le code utilisé :

    A noter que ce même code mais en supprimant le scrollView, fonctionne très bien.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    	private ScrollView scrollSchema;
    	private RelativeLayout planSchema;
    	...
    	public static Schema schema; // Surface sur laquelle sont posés les opérateurs
    	private static Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
     
    	@Override
    	public void onCreate(Bundle savedInstanceState) {
     
    		super.onCreate(savedInstanceState);
    		...
    		context = this;
    		setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
    		requestWindowFeature(Window.FEATURE_NO_TITLE);
    		getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON); // pour que lapplication ne soit pas détruite
    		setContentView(R.layout.base_appli);
     
    		scrollSchema = (ScrollView) findViewById(R.id.ScrollSchema);
    		planSchema = (RelativeLayout) findViewById(R.id.PlanSchema);
    		schema = new Schema(this);
    		planSchema.addView(schema);
     
    	public class Schema extends View { // Dessine le schéma
     
    		public Schema(Context context) {
    			super(context);
    		}
     
    		@Override
    		protected void onDraw(Canvas cnv) {
    			super.onDraw(cnv);
    			for (int i = 0; i < listOpe.size(); i++)
    				listOpe.get(i).traceOpe(cnv); // Dessin de chaque opérateur
    		}
    	}
     
    	private void faireDessin() {
    		schema.invalidate();
    	}
    et la partie .xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        <ScrollView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:id="@+id/ScrollSchema">
     
            <RelativeLayout
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:minHeight="480dp"
                android:minWidth="533dp"
                android:id="@+id/PlanSchema">
            </RelativeLayout>
        </ScrollView>
    Si vous avez une idée du pourquoi du comment cela ne veut rien afficher ...

    Cordialement.

    Pierre

  2. #2
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut
    Bon, le problème est résolu. Il fallait que je remplace la ligne 21 du code par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    		schema = new Schema(this);
    		final RelativeLayout.LayoutParams schemaPrms = new RelativeLayout.LayoutParams(800, 720);
    		planSchema.addView(schema, schemaPrms);
    C'est-à-dire que je donne les dimensions de la fenêtre ici au lieu de les donner dans le fichier .xml ???

    Cordialement.

    Pierre

  3. #3
    Membre éprouvé
    Avatar de ChPr
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    2 022
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 78
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 2 022
    Points : 1 049
    Points
    1 049
    Par défaut Déplacement d'un dessin à l'intérieur d'un scrollWiew
    Erreur : voir le sujet : Déplacement d'un dessin à l'intérieur d'un scrollWiew

    Cordialement.

    Pierre

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. problème de dessin dans une JApplet avec GridBagLayout
    Par esperal dans le forum Agents de placement/Fenêtres
    Réponses: 1
    Dernier message: 26/05/2008, 09h46
  2. Problèmes de dessin de ligne dans une JFrame .
    Par Pragmateek dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 24/03/2008, 16h11
  3. problème de dessin dans une fenêtre
    Par Mat 74 dans le forum Windows
    Réponses: 8
    Dernier message: 12/04/2007, 11h44
  4. Problème d'affichage dans une zone de "dessin"
    Par jason69 dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 28/08/2006, 16h12
  5. Réponses: 7
    Dernier message: 04/06/2006, 17h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo