10
votes

Comment ajouter des tuiles à la carte de Google et les animer, c'est-à-dire les remplacer avec de nouveaux carreaux de manière continue

J'ajoute plusieurs Tileverlays à une carte Google du cache. Lorsque vous essayez de les animer à l'aide d'un gestionnaire en modifiant leur visibilité, il y a un scintillement des superpositions sur la carte lors de la première pièce.

Tout autre moyen avec lequel je peux y parvenir? p>

Entrez la description de l'image ici p> xxx pré>

Ce qui suit est Code pour ajouter ces tuiles à la carte Google P>

public void start() {
    btn_play.setEnabled(true);
    tileoverlay_default.setVisible(false);
    runnable_animation = new Runnable() {
        @Override
        public void run() {
            //tileoverlay_default.setVisible(false);
            isDownloading = false;
            // stop_download=true;
            isRunning = true;
            btn_play.setBackgroundResource(R.drawable.player_pause_2x);
            setVisibility(global);

            if (global == 11) {
                global = 0;              
            } else {
                global = global + 1;
            } 
            mHandler_animation.postDelayed(this, 1000);
        }
    };
    mHandler_animation.post(runnable_animation);
}


2 commentaires

S'il vous plaît ne posez pas la même question à plusieurs reprises. Ceci est considéré comme un bruit sur le débordement de la pile. Si votre question est fermée comme sans réponse ou n'a pas attiré des réponses, la première chose à faire est de améliorer la question ; Quelques directives pour cela est donné ici . Des questions de mauvaise qualité ou sans réponse seront généralement fermées, mais peuvent être rouvertes si elles sont améliorées ou clarifiées (selon le cas).


@ user2197811 Avez-vous trouvé une solution pour cela? C'est un problème important avec Google Maps que je ne trouve pas non plus une solution.


3 Réponses :


-1
votes
public class LocalTileProvider implements TileProvider
    {
        private String url;
        DatabaseHelper db;
        String type;
       // private Paint opacityPaint = new Paint();
       String newurl= PathFinder.rainradar_HDBaseurl; 
        String uid;
         public LocalTileProvider(String uid,DatabaseHelper cache,String type)
        {
              this.uid=uid;
             this.db=cache;
             this.type=type;
        }

    //taking the tile from SQLITEDATABASE 
        @Override
        public Tile getTile(int x, int y, int zoom)
        {

             Tile tile = null;


            if(db.ispresent(uid, zoom,x , y,type))
            {

                byte[] b=db.gettiles(uid, zoom,x , y,type);
                 tile = new Tile(256, 256, b);
                    return tile;

            }
     return NO_TILE;
        }



    }

0 commentaires

-1
votes

Gmaps a toujours un "filckering" lors de l'ajout d'une nouvelle tuileverlay. Vous avez deux options:

  • Ajoutez la superposition "nouvelle" sur l'ancienne et retirez-la / cachez l'ancien uniquement lorsque le premier a chargé (pour lequel je ne me souviens pas s'il y a un rappel)
  • Ajoutez tous les TileProviders à la première fois, définissez le premier à visible (True) et les autres à Faux visibles (je ne peux pas obtenir de votre code si vous ajoutez déjà tous les fournisseurs à la première fois)

1 commentaires

Oui m Ajout de tous les fournisseurs dans la mendicité et les retarda m juste jouer avec la visibilité de Tileverlay



0
votes

Je sais que c'est une très vieille question, mais au cas où quelqu'un cherche la réponse à cette question, je pensais que je pourrais poster ma réponse.

Il y a 2 raisons pour lesquelles le Tileverlay scintille lorsque vous l'ajoutez à la carte.

  1. Les tuiles ne sont pas cachées et doivent être chargées
  2. Les carreaux se fanent (comportement par défaut)

    à partir des looks de votre code, vous mettez la mise en cache des carreaux, vous devez donc tout faire pour les arrêter de scintiller consiste à éteindre la fondue dans le comportement: xxx


0 commentaires