|
||
|
![]() |
![]() |
Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
Herramientas |
#1
|
||||
|
||||
Dibujar sobre una imagen
Hola, soy nuevo en esto de Android y me gustaría que me ayudarais.
Quiero montarme una aplicación de un calendario. Una serie de imagenes, una de cada mes y sobre ella poder dibujar linias, circulos etc etc Hasta ahí bien. Lo que hago es crear un MySurfaceView que extiende a SurfaceView. Por otro lado, le cambio el background y le pongo un drawable y al pintar los círculos no hace nada. Si por el contrario, no cambio el background si que dibuja los círculos allá donde pulses. ¿Alguna idea de lo que puede estar pasando? Aquí pongo el código Gracias de antemano public class MySurfaceView extends SurfaceView implements SurfaceHolder.Callback { private MySurfaceThread thread; volatile private List<Circle> circlesList; public boolean touched; @SuppressLint("NewApi") public MySurfaceView(Context context) { super(context); getHolder().addCallback(this); circlesList = new LinkedList<Circle>(); circlesList = Collections.synchronizedList(circlesList); // this.setBackground(getResources().getDrawable(R.dr awable.enero2014)); } @Override public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) { // TODO Auto-generated method stub } @Override public void surfaceCreated(SurfaceHolder holder) { this.thread = new MySurfaceThread(getHolder(), this); this.thread.setRunning(true); this.thread.start(); } @Override public void surfaceDestroyed(SurfaceHolder holder) { boolean retry = true; thread.setRunning(false); while(retry) { try { this.thread.join(); retry = false; } catch (InterruptedException e) { } } } @SuppressLint("NewApi") @Override public void onDraw(Canvas canvas) { for(int i = 0; i < circlesList.size(); i++){ canvas.drawCircle(circlesList.get(i).getPosX(), circlesList.get(i).getPosY(), 10, circlesList.get(i)); } } @Override public boolean onTouchEvent(MotionEvent event) { int touchedX = (int) event.getX(); int touchedY = (int) event.getY(); Circle pcirculo = new Circle(touchedX, touchedY, Color.RED); pcirculo.setStyle(Paint.Style.FILL); circlesList.add(pcirculo); return true; } } |
|
![]() |
![]() |
||||||
|