Autore Topic: Disegnare un'immagine sullo schermo per poi muoverla e ruotarla  (Letto 379 volte)

Offline array81

  • Utente junior
  • **
  • Post: 64
  • Respect: 0
    • Mostra profilo
    • MartinZone
  • Dispositivo Android:
    OnePlus One, Nexus S
  • Play Store ID:
    MartinZone
  • Sistema operativo:
    Windows 7
Disegnare un'immagine sullo schermo per poi muoverla e ruotarla
« il: 14 Giugno 2014, 18:53:20 CEST »
0
Una della mia activity é in sostanza una bussola. Ho usato 2 ImageView in una ho caricato l'immagine di una bussola mentre nell'altra quella di una lancetta. Tramite RotateAnimation faccio muovere la lancella.

Ora ho bisogno di disegnare sopra la mia bussola un'immagine da caricare da resources. L'immagine deve in sostanza indicarmi la posizione di un punto da raggiungere. Quando il punto si trova ad oltre 100 m di distanza l'immagine ruoterà semplicemente in corrispondenza del bordo della bussola ad indicare la direzione del punto da raggiungere, quando invece la distanza é inferiore a 100 m oltre a ruotare si dovrà spostare verso il centro della bussola fino ad arrivare al centro quando l'utente é in prossimità del punto.

Sto diventando matto perché non capisco qual'é la strada più semplice per fare una cosa così banale.
Fino ad adesso ho provato ad usare un'altra ImageView quindi ad usare RotateAnimation per ruotare l'immagine mentre per traslarla verso il centro o prima usato TranslateAnimation senza successo dato che sebbene le coordinate fossero giuste l'immagine scompariva. Quindi ho provato SetMatrix e postTranslate ma sebbene anche in questo caso le coordinate fossero giuste l'immagine veniva proiettata in altre parti dello schermo.

Vorrei sapere qual'é il modo più corretto di procedere per disegnare un'immagine sullo schermo quindi spostarla e ruotarla (intorno ad un punto) con coordinate assolute.

Grazie.

Offline vise950

  • Nuovo arrivato
  • *
  • Post: 32
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    nexus 4
  • Sistema operativo:
    winsows 8.1
Re:Disegnare un'immagine sullo schermo per poi muoverla e ruotarla
« Risposta #1 il: 14 Giugno 2014, 21:54:49 CEST »
0
Prova a dare un'occhiata agli shape

Inviato dal mio Nexus 4 utilizzando Tapatalk


Offline arlabs

  • Utente normale
  • ***
  • Post: 430
  • Respect: +49
    • Mostra profilo
  • Dispositivo Android:
    GalaxyS6, Nexus5
  • Play Store ID:
    AR Labs
  • Sistema operativo:
    Windows 10
Re:Disegnare un'immagine sullo schermo per poi muoverla e ruotarla
« Risposta #2 il: 16 Giugno 2014, 09:32:50 CEST »
0
Quindi ho provato SetMatrix e postTranslate ma sebbene anche in questo caso le coordinate fossero giuste l'immagine veniva proiettata in altre parti dello schermo.

Se veniva proiettata in altre parti dello schermo evidentemente la matrice che creavi era sbagliata...
Se vuoi dò un occhiata a come creavi la matrice...

In ogni caso, se il "punto" deve solo essere traslato e non ruotato, non è sufficente usare setMargins?

Ciao.