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 :

Android : Taille image et coordonnée relative


Sujet :

Android

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Stagiaire developpement android
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiaire developpement android
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Android : Taille image et coordonnée relative
    Bonjour,

    Depuis plusieurs jour je suis sur un problème que je n'arrive pas à régler.

    Premierement je n'arrive pas à récupéré la taille de l'image afficher par là, j'entend la dimension de l'image tel qu'elle est afficher sur l'ecran.

    Ici j'affiche la taille que je recupere avec

    Toast.makeText(this, "image : " + d.getIntrinsicWidth() + " " + d.getIntrinsicWidth(), Toast.LENGTH_SHORT).show() où d est un Drawable

    Nom : taille image.png
Affichages : 169
Taille : 67,4 Ko

    Alors qu'en fait si je vais chercher les coordonnées du coin inférieur droit (donc taille réelle de l'image à l'affichage) j'obtiens ceci

    Nom : taille_reelle.png
Affichages : 177
Taille : 68,3 Ko

    Soit environ 240x260 au lieu de 420x420. Donc comment récupérer ce 240x260 ? Car je fais tout mes calcule avec le 420x420 ce qui fausse tout.


    Ensuite le seconde problème qui fausse aussi mes calcules c'est que le coin superieur gauche de l'image ne correspond pas au 0x0 mais à 0x20 (du à la bande blanche au dessus) Comment faire pour recuperer les coordonnée relative à l'imaage et non à l'ecran ? event.getX() est censé le faire à l'opposition de getXRaw() mais les deux me renvoie la même chose.

    Nom : coin_gauche.png
Affichages : 151
Taille : 67,1 Ko

    Voici le code :

    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    package com.example.ttc;
    *
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    *
    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Matrix;
    import android.graphics.Paint;
    import android.graphics.drawable.BitmapDrawable;
    import android.graphics.drawable.Drawable;
    import android.view.Menu;
    import android.view.MotionEvent;
    import android.view.View;
    import android.view.View.OnTouchListener;
    import android.widget.ImageView;
    import android.widget.TextView;
    import android.widget.Toast;
    *
    public class MainActivity* extends Activity implements View.OnTouchListener{
    ****private ArrayList<Noeud> path;
    ****private Coordonnees dep = new Coordonnees(0,4);
    ****private Coordonnees fin = new Coordonnees(4,1);
    ****private Canvas canvas;
    ****private Graphe g;
    ****private ImageView imageView;
    ****@Override
    ****protected void onCreate(Bundle savedInstanceState) {
    ********super.onCreate(savedInstanceState);
    ********setContentView(R.layout.activity_main);
    ********// charge la map dans une view puis charge la bitmap correspondante dans la view
    *********imageView = (ImageView) findViewById(R.id.map1);
    *********Drawable d = imageView.getDrawable();
    *********Bitmap bitmap = Bitmap.createBitmap(d.getIntrinsicWidth(), d.getIntrinsicHeight(), Bitmap.Config.ARGB_8888);
    *********imageView.setImageBitmap(bitmap);
    *********imageView.setOnTouchListener(this);
    *********// met le bitmap dans un canvas pour le modifier
    *********Toast.makeText(this, "image : " + d.getIntrinsicWidth() + " " + d.getIntrinsicWidth(), Toast.LENGTH_SHORT).show();
    *********canvas = new Canvas(bitmap);
    *********//on crée une peinture de cercle pour tester que le bitmap se modifie bien
    *********//on initialise la peinture
    *********Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);
    *********paint.setColor(Color.LTGRAY);
    ********//on définie les bord du drawable
    *********d.setBounds(0,0,d.getIntrinsicWidth(), d.getIntrinsicHeight());
    *********d.draw(canvas);
    *********//on dessine un premier point
    *********PointView p = new PointView(this, 50, 50);
    *********p.draw(canvas);
    *********//puis un deuxieme
    *********p = new PointView(this, 0,0);
    *********p.draw(canvas);
    **********
    **********
    **********
    ********try{
    ************InputStream is =* getResources().openRawResource(R.raw.map1);
    ************ReadMap r = new ReadMap(is);
    ************g = new Graphe(r.getRead());
    ************path = g.pathFinder(dep,fin);
    *************
    ********}catch(Exception e){
    ************e.printStackTrace();
    ********}
    *********
    ****}
    *
    ****@Override
    ****public boolean onCreateOptionsMenu(Menu menu) {
    ********// Inflate the menu; this adds items to the action bar if it is present.
    ********getMenuInflater().inflate(R.menu.main, menu);
    ********return true;
    ****}
    *
    ****@Override
    ****public boolean onTouch(View v, MotionEvent event) {
    ********if (event.getAction()==MotionEvent.ACTION_MOVE)
    ********{****
    ************//coordonnée du click
    ************int X = (int)event.getX();
    ************int Y = (int)event.getY();
    ************//ce qui va etre les coo du centre de la case
    ************int cx = X;
    ************int cy = Y;
    ************// on incremente jusqu'a trouver le bord d'une case
    ************while(cx%(canvas.getWidth()/g.getWidth())!=0)
    ****************cx++;
    ************while(cy%(canvas.getHeight()/g.getHeight())!=0)
    ****************cy++;
    ************//on enleve la moitié du modulo pour etre au centre de la case
    ************cx = cx-((canvas.getWidth()/g.getWidth())/2);
    ************cy = cy-((canvas.getHeight()/g.getHeight())/2);
    *************
    ************Toast.makeText(this,"X : "+X+" Y : "+Y+" CX : "+cx+" CY : "+cy, Toast.LENGTH_SHORT).show();
    *************
    ********}
    ********return true;
    ****}
    *****
    *
    }
    Et le xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    ****android:layout_width="fill_parent"
    ****android:layout_height="fill_parent">
    ****<ImageView android:id="@+id/map1" android:src="@drawable/map1" android:layout_alignParentTop = "true"
    ********android:layout_width="wrap_content" android:layout_height="wrap_content"></ImageView>
    *****
    *********
    </RelativeLayout>
    Votre aide me serait vraiment précieuse merci.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Stagiaire developpement android
    Inscrit en
    Avril 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Stagiaire developpement android
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Avril 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Je suis sur une piste pour la position relative, View.getTop() retourne la position du haut de la vue relative à l'ecran, mais chez moi ça me retourne 0, et j'ai pu voir sur des forum anglais que c'etait un probleme recurrent mais pas de solutions qui conviennent

  3. #3
    Expert éminent

    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2007
    Messages
    4 253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2007
    Messages : 4 253
    Points : 7 618
    Points
    7 618
    Billets dans le blog
    3
    Par défaut
    View.getTop() marche très bien (après le onMeasure bien entendu), et renvoit bien la position "relativement au parent".
    Utiliser getX() et getY() pour avoir la position en pixels de la view.


    Je ne sais pas quels calculs tu veux réaliser
    (au passage, on dit "un calcul", pas "une calcule")

    Ensuite pour la taille de l'image c'est facile... quelle est la taille de "@drawable/map1" ?
    N'oubliez pas de cliquer sur mais aussi sur si un commentaire vous a été utile !
    Et surtout

Discussions similaires

  1. [ImageMagick] Contenu d'un répertoire et taille images
    Par FoxLeRenard dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 07/02/2006, 18h40
  2. taille page = taille image
    Par sohnic dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 25/12/2005, 14h47
  3. Taille image d'accueil
    Par JeanMi66 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 19/09/2005, 12h27
  4. Réponses: 13
    Dernier message: 19/11/2004, 19h11
  5. [Image]Vérifier taille image lors d'upload FTP
    Par MiJack dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 10/09/2004, 02h10

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