Attualmente sto lavorando a un'app che utilizza un oggetto TileSource personalizzato per visualizzare i dati su Google Maps. Ottengo quei dati sotto forma di immagini * .png, e sto usando l'URLTileProvider.Rendi trasparente TileOverlays
Tutto sta funzionando bene, ma ora sto cercando di rendere il TileLayer trasparente, o almeno, in parte. L'obiettivo è che il livello sia visibile, ma la sottostante Google Maps continua a brillare. In qualche modo sono bloccato, perché non so come raggiungerlo.
- Non ho trovato un modo per attuare pienamente un TileProvider personalizzato, pare si può estendere solo URLTileProvider
- Serverside imagemanipulation non è possibile, in quanto i dati è dato
- Non ci sono opzioni per fare un TileOverlay trasparente? (alfa, opacità, trasparenza)
Sarei molto utile se qualcuno mi suggerisse nella giusta direzione, o dimmi se l'API V2 di Google Maps per Android in realtà non supporta questa funzione.
Questo è il modo in cui l'ho fatto alla fine: ho creato il mio TileProvider personalizzato che fetchted Tile tramite un InputStream dall'URL, poi generato una bitmap tramite 'BitmapFactory.decodeByteArray' per la modifica con questa funzione: ' privato Bitmap adjustOpacity (Bitmap bitmap) ' Bitmap.Config conf = Bitmap.Config.ARGB_8888; Bitmap bmp = Bitmap.createBitmap (256, 256, conf); Tela canvas = new Canvas (bmp); Paint paint = new Paint(); paint.setAlpha (tileOpacity); canvas.drawBitmap (bitmap, 0, 0, paint); ritorno bmp; } – Elysium
Ho un problema simile a Elysium e ho anche il mio TileProvider. Ma trovo che non posso cambiare la trasparenza della tessera dopo che è stata disegnata. Usi il tuo "adjustOpacity" in qualsiasi momento dopo che è stato disegnato? – aez
Hai riconvertito la bitmap in un byte [] dopo aver regolato l'opacità? Altrimenti, come hai creato una Tile da una Bitmap per essere restituita da getTile()? Grazie. – paul