Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ///////////////////////////////////////////////////////////////////////////////////
- //////////////////////////////// KLASA mojaPUTANJA ////////////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////
- package primjer.crtanje;
- import android.graphics.Paint;
- import android.graphics.Path;
- public class mojaPutanja extends Path {
- public Paint bojaPutanje;
- public mojaPutanja(Paint boja){
- bojaPutanje=boja;
- }
- }
- //////////////////////////////////////////////////////////////////////////////////////
- ////////////////////////KLASA CRTANJEVIEW (GDJE SE SVE ODVIJA ////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////
- package primjer.crtanje;
- import java.io.File;
- import java.io.FileNotFoundException;
- import java.io.FileOutputStream;
- import java.util.ArrayList;
- import java.util.Vector;
- import android.content.Context;
- import android.graphics.Bitmap;
- import android.graphics.Canvas;
- import android.graphics.Color;
- import android.graphics.Paint;
- import android.graphics.Path;
- import android.os.Handler;
- import android.util.AttributeSet;
- import android.util.Log;
- import android.util.Pair;
- import android.view.MotionEvent;
- import android.view.View;
- public class CrtanjeView extends View {
- public static Paint boja;
- public static mojaPutanja putanja;
- private Paint krugBoja;
- private Path krugPutanja;
- public static int LONG_PRESS_TIME = 500;
- //////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////////////DEKLARACIJA NIZA PUTANJA///////////////////////////////////////////
- //////////////////////////////////////////////////////////////////////////////////////////////
- public static ArrayList<mojaPutanja> paths = new ArrayList<mojaPutanja>();
- // Varijabla za custom klasu QuickAction
- QuickAction qa;
- final Handler _handler = new Handler();
- Runnable _longPressed = new Runnable() {
- public void run() {
- // Poziva se metoda za prikaz QuickAction-a. ToÄŤnije, prikaĹľe se grid s 1 redom i 3 stupca, a u svakom stupcu je po jedan button
- qa.pokazi();
- Log.i("hepek", "Pritisnuto je dugo");
- }
- };
- public void dodajFunkcija() {
- Log.d("hepek", "pozvano");
- for (Path p : paths) {
- p.reset();
- }
- putanja.reset();
- postInvalidate();
- }
- public void ocistiFunkcija() {
- Log.d("hepek", "pozvano");
- for (Path p : paths) {
- p.reset();
- }
- postInvalidate();
- }
- private void inicijalizacija(Context k) {
- // // Inicijalizacija varijabli poput boje, boje kruga, putanje i sl.
- // stvari //////
- boja = new Paint();
- krugBoja = new Paint();
- krugPutanja = new Path();
- // Inicijalizacija qa varijable. Prosljeđuje joj se trenutni View
- qa = new QuickAction(this);
- }
- private void postaviKist() {
- // ///////// Postavljanje kista //////////
- boja.setAntiAlias(true);
- boja.setColor(Color.BLUE);
- // Da boja bude kist:
- boja.setStyle(Paint.Style.STROKE);
- // Da kist bude okruglog oblika:
- boja.setStrokeJoin(Paint.Join.ROUND);
- // Debljina kista
- boja.setStrokeWidth(5f);
- //////////////////////////////////////////////////////////////////////////////////////
- ///////////////PRAVLJENJE POČETNE PUTANJE, I DODAVANJE ISTE U NIZ/////////////////////
- //////////////////////////////////////////////////////////////////////////////////////
- putanja = new mojaPutanja(boja);
- paths.add(putanja);
- // ///////// Postavljanje kruga oko kista //////////
- krugBoja.setAntiAlias(true);
- krugBoja.setColor(Color.CYAN);
- krugBoja.setStyle(Paint.Style.STROKE);
- krugBoja.setStrokeJoin(Paint.Join.MITER);
- krugBoja.setStrokeWidth(4f);
- }
- public CrtanjeView(Context k, AttributeSet set) {
- super(k, set);
- inicijalizacija(k);
- postaviKist();
- }
- @Override
- protected void onDraw(Canvas canvas) {
- ///////////////////////////////////////////////////////////////////////////////////
- ////////////////////PROLAZAK KROZ VEKTOR I CRTANJE PATHOVA/////////////////////////
- ///////////////////////////////////////////////////////////////////////////////////
- for (mojaPutanja p : paths)
- {
- canvas.drawPath(p, p.bojaPutanje);
- canvas.drawPath(krugPutanja, krugBoja);
- }
- }
- @Override
- public boolean onTouchEvent(MotionEvent e) {
- float tackaX = e.getX();
- float tackaY = e.getY();
- switch (e.getAction()) {
- case MotionEvent.ACTION_DOWN:
- putanja.moveTo(tackaX, tackaY);
- _handler.postDelayed(_longPressed, LONG_PRESS_TIME);
- return true;
- case MotionEvent.ACTION_MOVE:
- putanja.lineTo(tackaX, tackaY);
- krugPutanja.reset();
- krugPutanja.addCircle(tackaX, tackaY, 25, Path.Direction.CW);
- _handler.removeCallbacks(_longPressed);
- break;
- case MotionEvent.ACTION_UP:
- //////////////////////////////////////////////////////////////////////////////////////////
- ////SVAKI PUT KAD SE PUSTI KLIK DA SE NAPRAVI NOVA PUTANJA SA BOJOM I DODA SE U VEKTOR////
- //////////////////////////////////////////////////////////////////////////////////////////
- putanja = new mojaPutanja(boja);
- //putanja.bojaPutanje = boja;
- paths.add(putanja);
- krugPutanja.reset();
- _handler.removeCallbacks(_longPressed);
- break;
- default:
- return false;
- }
- postInvalidate();
- return true;
- }
- }
- /////////////////////////////////////////////////////////////////////////////////////////////////
- ///////////////////ON CLICK LISTENER ZA MIJENJANJE BOJE /////////////////////////////////////////
- /////////////////////////////////////////////////////////////////////////////////////////////////
- ok.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- int id = rg.getCheckedRadioButtonId();
- switch(id){
- case R.id.rbCrvena:
- CrtanjeView.boja.setColor(Color.RED);
- CrtanjeView.putanja = new mojaPutanja(CrtanjeView.boja);
- CrtanjeView.paths.add(CrtanjeView.putanja);
- break;
- case R.id.rbPlava:
- CrtanjeView.boja.setColor(Color.BLUE);
- CrtanjeView.putanja = new mojaPutanja(CrtanjeView.boja);
- CrtanjeView.paths.add(CrtanjeView.putanja);
- break;
- case R.id.rbZelena:
- CrtanjeView.boja.setColor(Color.BLACK);
- CrtanjeView.putanja = new mojaPutanja(CrtanjeView.boja);
- CrtanjeView.paths.add(CrtanjeView.putanja);
- break;
- }
- tv.setText(Integer.toString(id));
- dialog.dismiss();
- }
- });
Advertisement
Add Comment
Please, Sign In to add comment