Afficher le marqueur à l'intérieur d'une ressource étirée qui a été obtenue à partir de l'URL

Carte montrant les ennemis

Voici la page de la carte que j'ai, qui montre tous les utilisateurs de ma application. De même, les images (marqueurs) sont obtenues à partir de l'URL fournie par mon serveur. Ces marqueurs doivent être placés dans un Drawable (un cercle comme image comme illustré). J'ai créé un cercle comme Bitmap à partir de l'URL à l'aide de Canvas.

  • Rénovation / Rxjava et services basés sur la session
  • Vérifiez si l'élément de vue est ajouté à la mise en page ou non par programme
  • Comment afficher le sélecteur de date pour Android avec seulement des champs de mois et d'année?
  • Codage UTF-8 dans les demandes de volley
  • WHERE IN dans Android sqlite?
  • Comment supprimer une application avec l'administrateur de périphérique actif activé sur Android?
  • public Drawable showMe(String url) { Bitmap bitmap=null; try { URL newurl = new URL(url); bitmap = BitmapFactory.decodeStream(newurl.openConnection().getInputStream()); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } bitmap=getBitmap(url); Paint paint = new Paint(); paint.setFilterBitmap(true); int targetWidth = 30; int targetHeight = 30; Bitmap targetBitmap = Bitmap.createBitmap(targetWidth, targetHeight,Bitmap.Config.ARGB_8888); RectF rectf = new RectF(0, 0, 30, 30); Canvas canvas = new Canvas(targetBitmap); Path path = new Path(); path.addRoundRect(rectf, targetWidth, targetHeight, Path.Direction.CW); canvas.clipPath(path); canvas.drawBitmap( bitmap, new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()), new Rect(0, 0, targetWidth, targetHeight), paint); Matrix matrix = new Matrix(); matrix.postScale(1f, 1f); Bitmap resizedBitmap = Bitmap.createBitmap(targetBitmap, 0, 0, 30, 30, matrix, true); Bitmap bitmap_circle=mergeBitmaps(resizedBitmap); BitmapDrawable bd = new BitmapDrawable(bitmap_circle); return bd; } 

    La fonction ci-dessus créera le dernier drawable pour le marqueur. De plus, la fonction mergeBitmaps () fusionne à la fois la ressource étirée et la carte de bits ensemble.

     public Bitmap mergeBitmaps(Bitmap manBitmap){ try{ Bitmap markerBitmap = BitmapFactory.decodeResource( this.getResources(), R.drawable.circle_bg); Bitmap bmOverlay = Bitmap.createBitmap(markerBitmap.getWidth(), markerBitmap.getHeight(), markerBitmap.getConfig()); Canvas canvas = new Canvas(bmOverlay); Matrix matrix = new Matrix(); matrix.postScale(1f, 1f); canvas.drawBitmap(markerBitmap, matrix, null); canvas.drawBitmap(manBitmap, 5, 5, null); return bmOverlay; } catch(Exception ex){ ex.printStackTrace(); return null; } } 

    Mais le problème est que ce bitmap n'est pas le mieux adapté à l'arrière-plan Drawable pour avoir l'impression que les deux ensemble donneront une image unique.

    Quelqu'un peut-il m'aider ?

  • Comment enregistrer une image JPEG sur Android avec un niveau de qualité personnalisé
  • Comment aligner une image dans un ImageView au bas de l'ImageView?
  • Obtenir la position actuelle d'un ViewPager
  • Android: Sqlite qui sauvegarde le réseau de chaînes?
  • Qu'arrive-t-il au code JavaScript après l'application de l'application avec Titanium Mobile
  • Instances multiples d'intention pendante
  • One Solution collect form web for “Afficher le marqueur à l'intérieur d'une ressource étirée qui a été obtenue à partir de l'URL”

    changement

     canvas.drawBitmap(manBitmap, 5, 5, null); 

    Ressembler à

     canvas.drawBitmap(manBitmap, (markerBitmap.getWidth()-manbitmap.getWidth())/2, (markerBitmap.getHeight()-manbitmap.getHeight())/2, null); 
    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.