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 dessiner une image a l'interieur d'une autre image


Sujet :

Android

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Points : 54
    Points
    54
    Par défaut Android dessiner une image a l'interieur d'une autre image
    Bonjour,
    je veux avoir le résultat suivant
    Nom : canvas.jpg
Affichages : 288
Taille : 23,1 Ko

    pour mettre cette image dans une carte comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    marker = gmap.addMarker(new MarkerOptions().title("test")
                            .position(new LatLng(0, 0))
                            .snippet("snipet test")
                            .icon(BitmapDescriptorFactory.fromBitmap(bitmap))
    je pense à utilisé Canvas , je l'ai déja utilisé pour dessiner une image dans un rectangle
    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
    InputStream inputStream = connection.getInputStream();
                Bitmap bitmap = BitmapFactory.decodeStream(inputStream);//Convert to bitmap
                Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
                        bitmap.getHeight(), Bitmap.Config.ARGB_8888);
                Canvas canvas = new Canvas(output);
     
                final int color = 0xff424242;
                final Paint paint = new Paint();
                final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
                final RectF rectF = new RectF(rect);
     
     
                paint.setAntiAlias(true);
                canvas.drawARGB(0, 0, 0, 0);
                paint.setColor(color);
                canvas.drawOval(rectF, paint);
     
                paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
                canvas.drawBitmap(bitmap, rect, rect, paint);
    aidez moi SVP

  2. #2
    Membre du Club
    Homme Profil pro
    Développeur Java
    Inscrit en
    Mai 2009
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 34
    Points : 54
    Points
    54
    Par défaut
    j'ai trouvé une solution pour ce problème :
    on met l'image dans un rond avec canvas après ça on redimensionne le résultat avec la taille exacte pour la mettre ensuite à l’intérieur de l'image de marqueur.

    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
    public class IconMarker {
        public IconMarker(){}
     
        public Bitmap DrawMarker(String userid,int typeid,Resources rcs){
     
            // récupéré l'image de la base de données : ...InputStream inputStream = connection.getInputStream();
            //Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
            Bitmap img1=new UserInfoBd().getPhotoProfil(userid);
            if(img1==null) img1=BitmapFactory.decodeResource(rcs,R.drawable.espace_photo);
            Bitmap.Config conf = Bitmap.Config.ARGB_8888;
            Bitmap bmp = BitmapFactory.decodeResource(rcs,
                    typeid);
            Bitmap output = Bitmap.createBitmap(bmp.getWidth(),
                    bmp.getHeight(), Bitmap.Config.ARGB_8888);
     
            Canvas canvas1 = new Canvas(output);
            canvas1.drawBitmap(bmp, 0,0, null);
            Bitmap output1 = Bitmap.createBitmap(img1.getWidth(),
                    img1.getHeight(), Bitmap.Config.ARGB_8888);
            Canvas canvas = new Canvas(output1);
     
            final int color = 0xff424242;
            final Paint paint = new Paint();
            final Rect rect = new Rect(0, 0, img1.getWidth(), img1.getHeight());
            final RectF rectF = new RectF(rect);
     
     
            paint.setAntiAlias(true);
            canvas.drawARGB(0, 0, 0, 0);
            paint.setColor(color);
            canvas.drawOval(rectF, paint);
     
            paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.SRC_IN));
            canvas.drawBitmap(img1, rect, rect, paint);
            Bitmap img=getResizedBitmap(output1,bmp.getHeight()*3/4-4,bmp.getWidth()*3/4);
     
            canvas1.drawBitmap(img,(float)4.7,(float)3.5,null);
     
            return output;
     
        }
        public  Bitmap getResizedBitmap(Bitmap bm, int newHeight, int newWidth) {
     
            int width = bm.getWidth();
     
            int height = bm.getHeight();
     
            float scaleWidth = ((float) newWidth) / width;
     
            float scaleHeight = ((float) newHeight) / height;
     
    // CREATE A MATRIX FOR THE MANIPULATION
     
            Matrix matrix = new Matrix();
     
    // RESIZE THE BIT MAP
     
            matrix.postScale(scaleWidth, scaleHeight);
     
    // RECREATE THE NEW BITMAP
     
            Bitmap resizedBitmap = Bitmap.createBitmap(bm, 0, 0, width, height, matrix, false);
     
            return resizedBitmap;
     
        }
    }

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/11/2014, 16h44
  2. Réponses: 3
    Dernier message: 14/08/2012, 10h24
  3. une forme (shape) à l'interieur d'une autre?
    Par Sami-33 dans le forum Excel
    Réponses: 2
    Dernier message: 02/07/2007, 08h57
  4. Réponses: 6
    Dernier message: 14/11/2006, 15h17
  5. affichage d'une page a l'interieur d'une autre
    Par momov dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 21/06/2006, 16h11

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