Crea / disegni dynamicmente immagini per mettere in visualizzazione android

Non sono sicuro che sto facendo questo "giusto" modo, quindi sono aperto anche ad altre opzioni. Ecco quello che sto cercando di realizzare:

Voglio una vista che contiene un grafico. Il grafico dovrebbe essere creato dynamicmente dall'applicazione stessa. Il grafico dovrebbe essere zoomabile e probabilmente inizia più grande dello schermo (800×600 o giù di lì)

  • Imansible vedere l'tree di dipendenza con gradlew o gradle
  • LinearAlloc ha superato la capacità (5242880), ultimo = 1092 Errore durante l'installazione sul mio dispositivo Samsung Tablet
  • Android - Imansible incrementare o diminuire il valore dall'elenco
  • Android Mapview: unione di marcatori sovrapposti in un nuovo marcatore
  • Android: scorrimento infinito - ListView e Cursore
  • Come gestire più marcatori su Google Maps con la stessa posizione?
  • Sto progettando di iniziare semplice, solo una plot di dispersione. Alla fine, voglio una plot di dispersione con una linea di misura e barre di errore con asse che rimangono sullo schermo mentre il grafico è ingrandito … in modo che probabilmente tre immagini sovrapposte con funzioni di zoom legate insieme.

    Ho già costruito una vista che può prendere un disegno, può utilizzare lo zoom pizzico focalizzato e trascinare, può scattare automaticamente le immagini, può cambiare le immagini in modo dinamico e prende le immagini più grandi dello schermo. Il legame tra le immagini non dovrebbe essere un problema.

    Non posso tuttavia capire come disegnare dynamicmente immagini semplici.

    Ad esempio: ottengo un object BitMap e disegno pixel per pixel? Volevo lavorare con alcuni ShapeDrawables, ma sembra che possano solo disegnare una forma su una canvas … come faccio ad get una bitmap di tutte quelle forms nella mia vista? O alternativamente, devo ridimensionare dynamicmente / tutto / dell'image che voglio mostrare nella routine "onDraw" della mia vista each volta che si muove o zoom?

    Penso che la soluzione "perfetta" sia quella di utilizzare lo ShapeDrawable (o qualcosa del genere per disegnare linee e etichettarle) per disegnare l'asse con il metodo onDraw della vista … mantenerli correnti e al giusto livello … quindi sovrapponga un'image pre-prodotta dei punti dati / fit curve / etc che possono essere ingranditi e spostati. Questo dovrebbe essere ansible con il bianco impostato su un alfa sull'image del grafico.

    PS: L'image del grafico non dovrebbe effettivamente cambiare / mentre sulla visualizzazione. Sta solo ingrandendo e trascinando. L'asse probabilmente cambia probabilmente con movimento. Quindi la pre-produzione del grafico prima (o immediatamente dopo) entrando nella vista sarebbe ottimale. Ma ho anche notato che la scala funziona veramente bene con immagini vettoriali … che suona anche appropriata (piuttosto che una bitmap?).

    Quindi sto cercando qualche guida generale. Ha provato a leggere le classi BitMap, ShapeDrawable, Disegnabili, etc e semplicemente non sembra trovare la giusta misura. Questo mi fa pensare che sto abbaiando l'tree sbagliato e qualcuno con qualche esperienza più può indicarmi nella giusta direzione. Spero di non perdere il mio tempo a build la visione zoom-capace che ho messo insieme ieri :).

    One Solution collect form web for “Crea / disegni dynamicmente immagini per mettere in visualizzazione android”

    Innanzitutto, non è mai uno spreco di tempo per scrivere il codice se hai imparato qualcosa da esso. 🙂

    Ancora purtroppo non esiste un supporto per la creazione di immagini vettoriali in Android. Quindi il bitmap è quello che ottieni.

    Penso che il bit che ti manca è che puoi creare una canvas each volta che desideri disegnare su una bitmap. Non devi aspettare che onDraw ti dia uno.

    Così ad un certo punto (da onCreate, quando i dati cambiano ecc.), Crea il tuo Bitmap di qualsiasi dimensione che desideri.

    Ecco un codice psuedo (non testato)

    Bitmap mGraph; void init() { // look at Bitmap.Config to determine config type mGraph = new Bitmap(width, height, config); Canvas c = new Canvas(mybits); // use Canvas draw routines to draw your graph } // Then in onDraw you can draw to the on screen Canvas from your bitmap. protected void onDraw(Canvas canvas) { Rect dstRect = new Rect(0,0,viewWidth, viewHeight); Rect sourceRect = new Rect(); // do something creative here to pick the source rect from your graph bitmap // based on zoom and pan sourceRect.set(10,10,100,100); // draw to the screen canvas.drawBitmap(mGraph, sourceRect, dstRect, graphPaint); } 

    Speranza che aiuta un po '.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.