Jump to content
TheFloyd

[Android] Desenhar várias figuras

Recommended Posts

TheFloyd

Boa Noite,

tenho já alguma experiência em java e estou a aprender a programar para android, mas tenho tido algumas dificuldades. Tenho uma activity e queria desenhar várias figuras geométricas(rectângulo, círculo e triângulo) e cada uma delas pode ser arrastada ao longo do do ecra.

Tentei criar uma classe para cada figura que extendia a classe View, desenhar lá a figura e adicioná-la na classe da activity, mas isso só fazia com que uma figura aparecesse.

Qual a melhor maneira para implementar aquilo que necessito?Espero não ter sido confuso.

Obrigado.

Share this post


Link to post
Share on other sites
Ernest

Bom dia,

Primeiro : desenhar , "draw"

The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the draw calls (writing into the bitmap), a drawing primitive (e.g. Rect, Path, text, Bitmap), and a paint (to describe the colors and styles for the drawing).

http://developer.android.com/reference/android/graphics/Canvas.html

Segundo : arrastar, "Drag and Drop", "DnD"

http://developer.android.com/guide/topics/ui/drag-drop.html

Para arrastar as figuras geométricas desenhadas tem que passar do modo "draw" ao modo "Drag and Drop" e delimitar cada uma das figuras geométricas selecionadas como seja capaz de ser "Draggable".

A problemática é delimitar o objeto para ser arrastado e definir seu formato na zona para desenhar.

O mais simples é ter duas zonas uma paleta de figuras geométricas (componentes gráficos) e arrastar para a zona de desenho os componentes gráficos para fabricar um desenho mais complexo a partir das figuras geométricas. Assim como o que faz um monte de software de design.

É importante especificar exatamente o que queremos obter no campo das possibilidades.

Uma vez que, em qualquer caso (no campo das possibilidades), a solução já existe! E, em geral, são muito poucas as soluções, no campo das melhores práticas.

Cordialmente

Ernest Duarte

Share this post


Link to post
Share on other sites
TheFloyd

Desculpe nunca mais ter respondido, mas os exames da faculdade ocuparam-me por completo o tempo.

Consegui "desenhar" as figuras através de Bitmaps e definindo imagens das figuras como fundo,no entanto para implementar o Drag and Drop necessito de associar cada Bitmap a uma ImageView através de view.SetImageBitmap(bitmap) em vez de desenhar directamente usando canvas.drawBitmap(bitmap), mas as figuras não aparecem.

obrigado.

Share this post


Link to post
Share on other sites
Ernest

Bom dia,

? "Tenho uma activity e queria desenhar várias figuras geométricas(rectângulo, círculo e triângulo) e cada uma delas pode ser arrastada ao longo do do ecrã." ?

Não é fácil de fazer a expressão de requisitos que seja clara, precisa e concisa ? Expressar claramente e com rigor a expressão das necessidades não é fácil ?

O que é bem concebido se expressa claramente, e as palavras para dizê-lo vem facilmente. [ Nicolas Boileau , Paris, 1636-1711 ]

Primeiro procure saber o que você pode arrastar / soltar (drag & drop) ?

Resposta : "dados" por isso tem que definir o tipo de objetos (dados) para serem arrastados

Segundo transforme as figuras no formato adequado para ser arrastado e também delimite a zona da imagem a ser arrastada ?

Resposta : desenhar e arrastar são operações diferentes, então como você vai distinguir os dois se você desenhar e arrastar com o mesmo dedo ?

Terceiro saiba de que View para qual outra View você quer arrastar ?

Resposta: ...ao longo do ecrã ? ... é muito claro mesmo ...

Nestes links tem a resposta a seu problema uma vez que expressar claramente e com rigor o que quer exatamente e o algoritmo do programa.

O arrastar / soltar (drag & drop) permite mover dados de uma View para outra View no layout atual.

http://developer.android.com/guide/topics/ui/drag-drop.html

Pode desenhar num Canvas, View ou SurfaceView

http://developer.android.com/guide/topics/graphics/2d-graphics.html

Cordialmente

Ernest Duarte

  • Vote 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.