package com.dam.profesor.paint; import android.app.AlertDialog; import android.app.Dialog; import android.content.DialogInterface; import android.os.Bundle; import android.provider.MediaStore; import android.support.design.widget.FloatingActionButton; import android.support.design.widget.Snackbar; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.Toolbar; import android.view.View; import android.view.Menu; import android.view.MenuItem; import android.widget.ImageButton; import android.widget.TextView; import android.widget.Toast; import java.util.UUID; public class MainActivity extends AppCompatActivity implements View.OnClickListener { ImageButton negro; ImageButton blanco; ImageButton rojo; ImageButton verde; ImageButton azul; private static Lienzo lienzo; float ppequenyo; float pmediano; float pgrande; float pdefecto; ImageButton trazo; ImageButton anyadir; ImageButton borrar; ImageButton guardar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); negro = (ImageButton)findViewById(R.id.colornegro); blanco = (ImageButton)findViewById(R.id.colorblanco); rojo = (ImageButton)findViewById(R.id.colorrojo); verde = (ImageButton)findViewById(R.id.colorverde); azul = (ImageButton)findViewById(R.id.colorazul); trazo = (ImageButton)findViewById(R.id.trazo); anyadir = (ImageButton)findViewById(R.id.anyadir); borrar = (ImageButton)findViewById(R.id.borrar); guardar = (ImageButton)findViewById(R.id.guardar); negro.setOnClickListener(this); blanco.setOnClickListener(this); rojo.setOnClickListener(this); verde.setOnClickListener(this); azul.setOnClickListener(this); trazo.setOnClickListener(this); anyadir.setOnClickListener(this); borrar.setOnClickListener(this); guardar.setOnClickListener(this); lienzo = (Lienzo)findViewById(R.id.lienzo); ppequenyo= 10; pmediano= 20; pgrande= 30; pdefecto= pmediano; } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } @Override public void onClick(View v) { String color = null; switch (v.getId()){ case R.id.colornegro: color = v.getTag().toString(); lienzo.setColor(color); break; case R.id.colorblanco: color = v.getTag().toString(); lienzo.setColor(color); break; case R.id.colorazul: color = v.getTag().toString(); lienzo.setColor(color); break; case R.id.colorverde: color = v.getTag().toString(); lienzo.setColor(color); break; case R.id.colorrojo: color = v.getTag().toString(); lienzo.setColor(color); break; case R.id.trazo: final Dialog tamanyopunto = new Dialog(this); tamanyopunto.setTitle("Tamaño del punto:"); tamanyopunto.setContentView(R.layout.tamanyo_punto); //listen for clicks on tamaños de los botones TextView smallBtn = (TextView)tamanyopunto.findViewById(R.id.tpequenyo); smallBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Lienzo.setBorrado(false); Lienzo.setTamanyoPunto(ppequenyo); tamanyopunto.dismiss(); } }); TextView mediumBtn = (TextView)tamanyopunto.findViewById(R.id.tmediano); mediumBtn.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Lienzo.setBorrado(false); Lienzo.setTamanyoPunto(pmediano); tamanyopunto.dismiss(); } }); TextView largeBtn = (TextView)tamanyopunto.findViewById(R.id.tgrande); largeBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Lienzo.setBorrado(false); Lienzo.setTamanyoPunto(pgrande); tamanyopunto.dismiss(); } }); //show and wait for user interaction tamanyopunto.show(); break; case R.id.anyadir: AlertDialog.Builder newDialog = new AlertDialog.Builder(this); newDialog.setTitle("Nuevo Dibujo"); newDialog.setMessage("¿Comenzar nuevo dibujo (perderás el dibujo actual)?"); newDialog.setPositiveButton("Aceptar", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which){ lienzo.NuevoDibujo(); dialog.dismiss(); } }); newDialog.setNegativeButton("Cancelar", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which){ dialog.cancel(); } }); newDialog.show(); break; case R.id.borrar: final Dialog borrarpunto = new Dialog(this); borrarpunto.setTitle("Tamaño de borrado:"); borrarpunto.setContentView(R.layout.tamanyo_punto); //listen for clicks on tamaños de los botones TextView smallBtnBorrar = (TextView)borrarpunto.findViewById(R.id.tpequenyo); smallBtnBorrar.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Lienzo.setBorrado(true); Lienzo.setTamanyoPunto(ppequenyo); borrarpunto.dismiss(); } }); TextView mediumBtnBorrar = (TextView)borrarpunto.findViewById(R.id.tmediano); mediumBtnBorrar.setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v) { Lienzo.setBorrado(true); Lienzo.setTamanyoPunto(pmediano); borrarpunto.dismiss(); } }); TextView largeBtnBorrar = (TextView)borrarpunto.findViewById(R.id.tgrande); largeBtnBorrar.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Lienzo.setBorrado(true); Lienzo.setTamanyoPunto(pgrande); borrarpunto.dismiss(); } }); //show and wait for user interaction borrarpunto.show(); break; case R.id.guardar: AlertDialog.Builder salvarDibujo = new AlertDialog.Builder(this); salvarDibujo.setTitle("Salvar dibujo"); salvarDibujo.setMessage("¿Salvar Dibujo a la galeria?"); salvarDibujo.setPositiveButton("Aceptar", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which){ //Salvar dibujo lienzo.setDrawingCacheEnabled(true); //attempt to save String imgSaved = MediaStore.Images.Media.insertImage( getContentResolver(), lienzo.getDrawingCache(), UUID.randomUUID().toString()+".png", "drawing"); //Mensaje de todo correcto if(imgSaved!=null){ Toast savedToast = Toast.makeText(getApplicationContext(), "¡Dibujo salvado en la galeria!", Toast.LENGTH_SHORT); savedToast.show(); } else{ Toast unsavedToast = Toast.makeText(getApplicationContext(), "¡Error! La imagen no ha podido ser salvada.", Toast.LENGTH_SHORT); unsavedToast.show(); } lienzo.destroyDrawingCache(); } }); salvarDibujo.setNegativeButton("Cancelar", new DialogInterface.OnClickListener(){ public void onClick(DialogInterface dialog, int which){ dialog.cancel(); } }); salvarDibujo.show(); break; default: break; } } }