Guest User

Untitled

a guest
Aug 18th, 2013
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.48 KB | None | 0 0
  1. ///////////////////////////////////////////////////////////////////////////////////
  2. //////////////////////////////// KLASA mojaPUTANJA ////////////////////////////////
  3. ///////////////////////////////////////////////////////////////////////////////////
  4.  
  5. package primjer.crtanje;
  6.  
  7. import android.graphics.Paint;
  8. import android.graphics.Path;
  9.  
  10. public class mojaPutanja extends Path {
  11.     public Paint bojaPutanje;
  12.    
  13.     public mojaPutanja(Paint boja){
  14.         bojaPutanje=boja;
  15.     }
  16. }
  17.  
  18. //////////////////////////////////////////////////////////////////////////////////////
  19. ////////////////////////KLASA CRTANJEVIEW (GDJE SE SVE ODVIJA ////////////////////////
  20. //////////////////////////////////////////////////////////////////////////////////////
  21.  
  22.  
  23. package primjer.crtanje;
  24.  
  25. import java.io.File;
  26. import java.io.FileNotFoundException;
  27. import java.io.FileOutputStream;
  28. import java.util.ArrayList;
  29. import java.util.Vector;
  30.  
  31. import android.content.Context;
  32. import android.graphics.Bitmap;
  33. import android.graphics.Canvas;
  34. import android.graphics.Color;
  35. import android.graphics.Paint;
  36. import android.graphics.Path;
  37. import android.os.Handler;
  38. import android.util.AttributeSet;
  39. import android.util.Log;
  40. import android.util.Pair;
  41. import android.view.MotionEvent;
  42. import android.view.View;
  43.  
  44. public class CrtanjeView extends View {
  45.  
  46.     public static Paint boja;
  47.     public static mojaPutanja putanja;
  48.     private Paint krugBoja;
  49.     private Path krugPutanja;
  50.     public static int LONG_PRESS_TIME = 500;
  51.  
  52. //////////////////////////////////////////////////////////////////////////////////////////////
  53. ///////////////////////////DEKLARACIJA NIZA PUTANJA///////////////////////////////////////////
  54. //////////////////////////////////////////////////////////////////////////////////////////////
  55.     public static ArrayList<mojaPutanja> paths = new ArrayList<mojaPutanja>();
  56.  
  57.     // Varijabla za custom klasu QuickAction
  58.     QuickAction qa;
  59.  
  60.     final Handler _handler = new Handler();
  61.     Runnable _longPressed = new Runnable() {
  62.         public void run() {
  63.  
  64.             // 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
  65.             qa.pokazi();
  66.  
  67.             Log.i("hepek", "Pritisnuto je dugo");
  68.         }
  69.     };
  70.  
  71.     public void dodajFunkcija() {
  72.         Log.d("hepek", "pozvano");
  73.         for (Path p : paths) {
  74.             p.reset();
  75.         }
  76.         putanja.reset();
  77.         postInvalidate();
  78.     }
  79.  
  80.     public void ocistiFunkcija() {
  81.         Log.d("hepek", "pozvano");
  82.         for (Path p : paths) {
  83.             p.reset();
  84.         }
  85.         postInvalidate();
  86.     }
  87.  
  88.     private void inicijalizacija(Context k) {
  89.         // // Inicijalizacija varijabli poput boje, boje kruga, putanje i sl.
  90.         // stvari //////
  91.         boja = new Paint();
  92.         krugBoja = new Paint();
  93.         krugPutanja = new Path();      
  94.         // Inicijalizacija qa varijable. ProsljeÄ‘uje joj se trenutni View
  95.         qa = new QuickAction(this);
  96.  
  97.     }
  98.  
  99.     private void postaviKist() {
  100.  
  101.         // ///////// Postavljanje kista //////////
  102.  
  103.         boja.setAntiAlias(true);
  104.         boja.setColor(Color.BLUE);
  105.         // Da boja bude kist:
  106.         boja.setStyle(Paint.Style.STROKE);
  107.         // Da kist bude okruglog oblika:
  108.         boja.setStrokeJoin(Paint.Join.ROUND);
  109.         // Debljina kista
  110.         boja.setStrokeWidth(5f);
  111.  
  112. //////////////////////////////////////////////////////////////////////////////////////
  113. ///////////////PRAVLJENJE POČETNE PUTANJE, I DODAVANJE ISTE U NIZ/////////////////////
  114. //////////////////////////////////////////////////////////////////////////////////////
  115.         putanja = new mojaPutanja(boja);
  116.         paths.add(putanja);
  117.  
  118.         // ///////// Postavljanje kruga oko kista //////////
  119.         krugBoja.setAntiAlias(true);
  120.         krugBoja.setColor(Color.CYAN);
  121.         krugBoja.setStyle(Paint.Style.STROKE);
  122.         krugBoja.setStrokeJoin(Paint.Join.MITER);
  123.         krugBoja.setStrokeWidth(4f);
  124.     }
  125.  
  126.     public CrtanjeView(Context k, AttributeSet set) {
  127.         super(k, set);
  128.         inicijalizacija(k);
  129.         postaviKist();
  130.     }
  131.  
  132.     @Override
  133.     protected void onDraw(Canvas canvas) { 
  134.  
  135. ///////////////////////////////////////////////////////////////////////////////////
  136. ////////////////////PROLAZAK KROZ VEKTOR I CRTANJE PATHOVA/////////////////////////
  137. ///////////////////////////////////////////////////////////////////////////////////
  138.        
  139.         for (mojaPutanja p : paths)
  140.         {
  141.             canvas.drawPath(p, p.bojaPutanje);
  142.             canvas.drawPath(krugPutanja, krugBoja);
  143.         }
  144.        
  145.     }
  146.  
  147.     @Override
  148.     public boolean onTouchEvent(MotionEvent e) {
  149.  
  150.         float tackaX = e.getX();
  151.         float tackaY = e.getY();
  152.  
  153.         switch (e.getAction()) {
  154.         case MotionEvent.ACTION_DOWN:
  155.             putanja.moveTo(tackaX, tackaY);
  156.             _handler.postDelayed(_longPressed, LONG_PRESS_TIME);
  157.             return true;
  158.  
  159.         case MotionEvent.ACTION_MOVE:
  160.  
  161.             putanja.lineTo(tackaX, tackaY);
  162.             krugPutanja.reset();
  163.             krugPutanja.addCircle(tackaX, tackaY, 25, Path.Direction.CW);
  164.             _handler.removeCallbacks(_longPressed);
  165.             break;
  166.  
  167.         case MotionEvent.ACTION_UP:
  168. //////////////////////////////////////////////////////////////////////////////////////////
  169. ////SVAKI PUT KAD SE PUSTI KLIK DA SE NAPRAVI NOVA PUTANJA SA BOJOM I DODA SE U VEKTOR////
  170. //////////////////////////////////////////////////////////////////////////////////////////
  171.  
  172.             putanja = new mojaPutanja(boja);
  173.             //putanja.bojaPutanje = boja;
  174.             paths.add(putanja);
  175.             krugPutanja.reset();
  176.             _handler.removeCallbacks(_longPressed);
  177.             break;
  178.  
  179.         default:
  180.             return false;
  181.         }
  182.  
  183.         postInvalidate();
  184.         return true;
  185.     }
  186.  
  187. }
  188.  
  189.  
  190. /////////////////////////////////////////////////////////////////////////////////////////////////
  191. ///////////////////ON CLICK LISTENER ZA MIJENJANJE BOJE /////////////////////////////////////////
  192. /////////////////////////////////////////////////////////////////////////////////////////////////
  193.  
  194.         ok.setOnClickListener(new OnClickListener() {
  195.             @Override
  196.             public void onClick(View v) {
  197.                 int id = rg.getCheckedRadioButtonId();
  198.                
  199.                 switch(id){
  200.                 case R.id.rbCrvena:
  201.                     CrtanjeView.boja.setColor(Color.RED);
  202.                     CrtanjeView.putanja = new mojaPutanja(CrtanjeView.boja);
  203.                     CrtanjeView.paths.add(CrtanjeView.putanja);
  204.                     break;
  205.                 case R.id.rbPlava:
  206.                     CrtanjeView.boja.setColor(Color.BLUE);
  207.                     CrtanjeView.putanja = new mojaPutanja(CrtanjeView.boja);
  208.                     CrtanjeView.paths.add(CrtanjeView.putanja);
  209.                     break;
  210.                 case R.id.rbZelena:
  211.                     CrtanjeView.boja.setColor(Color.BLACK);
  212.                     CrtanjeView.putanja = new mojaPutanja(CrtanjeView.boja);
  213.                     CrtanjeView.paths.add(CrtanjeView.putanja);
  214.                     break;
  215.                 }
  216.  
  217.                 tv.setText(Integer.toString(id));
  218.                 dialog.dismiss();
  219.             }
  220.         });
Advertisement
Add Comment
Please, Sign In to add comment