Italian [RISOLTO] Disegnare un cerchio

MAX_SV

Active Member
Licensed User
Longtime User
Ciao a tutti come il solito mi fermo su delle stupidaggini...
Questa volta il problema è questo

Ho un immagine di fondo che mi serve come "maschera", dovrei disegnare un cerchio dove tocco lo schermo



ho provato a inserire un panel in corrispondenza dell'immagine da designer ma niente ...

Sono nelle VS capaci mani

Screenshot_2015-07-29-14-44-15.png schermata con bitmap
simulazione.png quello che vorrei ottenere

Grazie in anticipo
 

Attachments

  • Screenshot_2015-07-29-14-44-15.png
    Screenshot_2015-07-29-14-44-15.png
    155.2 KB · Views: 390
  • simulazione.png
    simulazione.png
    177.5 KB · Views: 462

LucaMs

Expert
Licensed User
Longtime User
Potresti usare un canvas (chiamiamolo cnvCanoista :)).

Lo dichiari a livello globale e lo inizializzi (nella Acivity_Create) su un panel (pnlCanoista) che avrà come background la tua immagine.

Nella routine evento touch del panel:

B4X:
Sub pnlCanoista_Touch (Action As Int, X As Float, Y As Float)
   cnvCanoista.DrawCircle(X, Y, ...)
End Sub
 

MAX_SV

Active Member
Licensed User
Longtime User
Potresti usare un canvas (chiamiamolo cnvCanoista :)).

Lo dichiari a livello globale e lo inizializzi (nella Acivity_Create) su un panel (pnlCanoista) che avrà come background la tua immagine.

Nella routine evento touch del panel:

B4X:
Sub pnlCanoista_Touch (Action As Int, X As Float, Y As Float)
   cnvCanoista.DrawCircle(X, Y, ...)
End Sub

problema....

upload_2015-7-29_17-59-49.png


anche se

in global
upload_2015-7-29_18-1-10.png
 

MAX_SV

Active Member
Licensed User
Longtime User
ok sono riuscito a eliminare l'errore (bastava riscrivere le variabili tra parentesi)

adesso con
B4X:
Sub pnlCanoista_Touch (action As Int, x1 As Float, y1 As Float) As Boolean
    If action = Activity.ACTION_DOWN Then
       
        PositionX = x1
        PositionY = y1
        cnvCanoista.DrawCircle(x1,y1,20dip,Colors.Red,False,5dip)
        cnvCanoista.DrawPoint(x1,y1,Colors.Red)
       
        ToastMessageShow("OK",False)
        Activity.Invalidate
        'Msgbox("You touched at X = " & x1 & " Y = " & y1,"test")
       
    End If
    Return
End Sub

sorgono ora 2 nuovi problemi:
  1. la coordinata Y è spostata verso l'alto
  2. i cerchi rimangono in secondo piano
allego screenshot
 

Attachments

  • Screenshot_2015-07-29-21-42-55.png
    Screenshot_2015-07-29-21-42-55.png
    97.6 KB · Views: 204

MAX_SV

Active Member
Licensed User
Longtime User
provato e la tua versione funziona perfettamente ... adesso devo integrarla nel mio
:(
 

MAX_SV

Active Member
Licensed User
Longtime User
trovato l'errore ....

istruzione corretta : cnvCanoista.Initialize(pnlCanoista)
istruzione errata: cnvCanoista.Initialize(activity)

grazie
 
Top