This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package com.cecy.practica3; | |
import android.app.Activity; | |
import android.content.Context; | |
import android.graphics.Canvas; | |
import android.graphics.Paint; | |
import android.os.Bundle; | |
import android.view.MotionEvent; | |
import android.view.View; | |
import android.view.View.OnTouchListener; | |
import android.widget.LinearLayout; | |
public class Practica3Activity extends Activity implements OnTouchListener{ | |
/** Called when the activity is first created. */ | |
private float corX, corY; | |
private Lienzo fondo; | |
private int pintados[][] = new int[10][10]; | |
@Override | |
public void onCreate(Bundle savedInstanceState) { | |
super.onCreate(savedInstanceState); | |
setContentView(R.layout.main); | |
LinearLayout linearLayout = (LinearLayout)findViewById(R.id.linearLayout1); | |
corX = 0; | |
corY = 0; | |
for(int j=0;j<10;j++){ | |
for(int i=0; i<10; i++){ | |
pintados[i][j] = 0; | |
} | |
} | |
fondo = new Lienzo(this); | |
fondo.setOnTouchListener(this); | |
linearLayout.addView(fondo); | |
} | |
public boolean onTouch(View v, MotionEvent event) { | |
corX = (float)event.getX(); | |
corY = (float)event.getY(); | |
fondo.invalidate(); | |
return true; | |
} | |
class Lienzo extends View { | |
public Lienzo(Context context) { | |
super(context); | |
} | |
protected void onDraw(Canvas canvas) { | |
float ancho=canvas.getWidth(); | |
float alto=canvas.getHeight(); | |
float tamX = ancho/10; | |
float mitX = tamX/2; | |
float radio = 6; | |
float inicialX = mitX; | |
float inicialY = mitX; | |
Paint pincel1=new Paint(); | |
pincel1.setARGB(255,124,205,124); | |
for(int j=0;j<10;j++){ | |
for(int i=0; i<10; i++){ | |
if(pintados[i][j] == 1 && corX < (inicialX+radio) && corX > (inicialX-radio) && corY > (inicialY-radio) && corY < (inicialY +radio)){ | |
pincel1.setARGB(255,124,205,124); | |
canvas.drawCircle(inicialX, inicialY, radio, pincel1); | |
pintados[i][j] = 0; | |
} | |
else if(corX < (inicialX+radio) && corX > (inicialX-radio) && corY > (inicialY-radio) && corY < (inicialY +radio) && pintados[i][j] != 1){ | |
pincel1.setARGB(255,255,0,0); | |
canvas.drawCircle(inicialX, inicialY, radio, pincel1); | |
pintados[i][j] = 1; | |
} | |
else if(pintados[i][j] == 1){ | |
pincel1.setARGB(255,255,0,0); | |
canvas.drawCircle(inicialX, inicialY, radio, pincel1); | |
pintados[i][j] = 1; | |
} | |
else{ | |
pincel1.setARGB(255,124,205,124); | |
canvas.drawCircle(inicialX, inicialY, radio, pincel1); | |
pintados[i][j] = 0; | |
} | |
inicialX = inicialX + tamX; | |
} | |
inicialY = inicialY + tamX; | |
inicialX = mitX; | |
} | |
//canvas.drawCircle(corX, corY, 15, pincel1); | |
} | |
} | |
} |
Y con esto obtengo lo siguiente:
Bien; 8 pts lab móviles.
ResponderEliminarGracias
ResponderEliminar