Italian Se vi serve il Pinch Zoom...

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ho migliorato il codice ed ho aggiunto anche il movimento del view in contemporanea al pinch zoom. Potete scaricare il tutorial a questo link.

Per arenaluigi
Puoi usare questo tutorial nel tuo libro. ;)

Senz'altro lo userò :sign0098:
 

arenaluigi

Well-Known Member
Licensed User
Longtime User
Ho trasformato il codice in Classe, ora è sufficiente una sola riga di codice per farla funzionare.

Ottimo Dominex :icon_clap:
Se mi passi il codice lo inserisco nel repository. :)

Repository Home
 

Dominex

Active Member
Licensed User
Longtime User
[Update 1.3]

Aggiunta la possibilità di impostare il BringToFront.
Aggiunta la possibilità di impostare il Tag in caso di multi-View.
Aggiunta l'evento "Click".

L'esempio mostra come utilizzare un multi-View con questa Class. Provatela!

Vai al post del download.
 

maxware

Well-Known Member
Licensed User
Longtime User
Grazie Dominex
Sono alle prime armi con la grafica
Sto provando a fare una app partendo dal tuo esempio. Carico le immagini selezionandole da una lista o direttamente dall'archivio del tablet. Le carico sul pannello le sposto le ridimensiono tutto perfetto. Ho un test ove posso al massimo caricare 10 immagini ( quindi dal tuo esempio la variabile dichiarate come " Dim c As Int " al massimo puo' raggiungere valore 10 ) che e' poi il valore della propieta' Tag dell'oggetto
Ho messo la dichiarazione Dim imv As ImageView nella globals come mi hai suggerito.
Se ora volessi rimuovere o rendere non visibile un oggetto ( es. il numero 5) come potrei fare. Scusa ancora se stresso ma come ti dicevo non ho mai giochicchiato con le image
ciaoooooooo e grazie
Mamo
 

Dominex

Active Member
Licensed User
Longtime User
Prova a fare così:

B4X:
Sub Globals
   Dim PZ(10) As PinchZoomAndMove
   Dim NumView As Int
   Dim imv(10) As ImageView
End Sub

Sub Activity_Create(FirstTime As Boolean)
   Dim bmp As Bitmap
   Dim vWidth,vHeight As Float
   Dim c As Int
   For c = 0 To PZ.Length-1
      bmp = LoadBitmap(File.DirAssets,"avatar_"&c&".png")
      vWidth = bmp.Width*2
      vHeight = vWidth*(bmp.Height/bmp.Width)
      imv(c).Initialize("")
      imv(c).Bitmap = bmp
      imv(c).Gravity = Gravity.FILL
      Activity.AddView(imv(c),50%x-(vWidth/2),50%y-(vHeight/2),vWidth,vHeight)
      imv(c).Left = Rnd(5dip,Activity.Width-imv(c).Width-5dip)
      imv(c).top = Rnd(5dip,Activity.Height-imv(c).Height-5dip)
      '------------------------------
      PZ(c).Initialize(imv(c),"PZ",c,0.5,3,1.5,True)
   Next
End Sub

Se ad esempio vuoi rendere invisibile il View numero 5 scrivi:
B4X:
imv(5).Visible = False

Se ti crei un Array di ImageView a questo punto il Tag del PinchZoom non ti serve più, usi il numero della matrice.
 

maxware

Well-Known Member
Licensed User
Longtime User
Semplicemente mitico.
Funziona alla grande. grazie 10*10*10 birra virtuale pagata
approfitto
Nell'esempio vedo 4 immagini android png con sfondo trasparente
Ne ho create altre con Photoshop sempre trasparenti e salvata nel formato png
Hai mica mezza idea del perche' le tue sono trasparenti e le mie no ?? ( sempre sfondo bianco )
 

Dominex

Active Member
Licensed User
Longtime User
Semplicemente mitico.
Funziona alla grande. grazie 10*10*10 birra virtuale pagata
approfitto
Vabbè, sei fortunato che sono astemio. :cool:

Nell'esempio vedo 4 immagini android png con sfondo trasparente
Ne ho create altre con Photoshop sempre trasparenti e salvata nel formato png
Hai mica mezza idea del perche' le tue sono trasparenti e le mie no ?? ( sempre sfondo bianco )
Prima di tutto io non uso PS ma PaintShopPro, quindi con conosco il passaggio preciso da fare con quel tool. Con PSP prendo un immagine che di base è come "sfondo", la innalzo a layer ove è possibile vedere la trasparenza, e poi salvo in normale PNG.

Hai provato a guardare in rete?
 

Dominex

Active Member
Licensed User
Longtime User
Dominex,
dai scrivilo un tutorial.
Il mio problema non è quello di non volerlo fare, ma il mio tempo che scarseggia. Devi sapere che ho due gemelli piccoli che non mi lasciano molto tempo per questo mio "hobby", e con quello che ho a disposizione vado avanti poco alla volta con le cose che ho in ballo, tra cui quella di fare la trasposizione del mio gioco da tavolo su piattaforma Android. :cool:

Conoscete un posto dove si può comprare del tempo a buon mercato? :BangHead:

Ciò non vuol dire che non lo farò. Aspetta poi di vedere la classe che sto scrivendo ora...
 
Top