Advertisement
kanzeparov

Fifth_toPaint_CanvasView

Nov 18th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.86 KB | None | 0 0
  1. class CanvasView extends View implements ICanvasView{
  2.     Paint paint;
  3.     MainCircle mainCircle;
  4.     static int width;
  5.     static int height;
  6.     Canvas canvas;
  7.     static int MAX_CIRCLES = 10;
  8.     ArrayList<EnemyCircle> circles;
  9.  
  10.     CanvasView(Context context, @Nullable AttributeSet attrs) {
  11.         super(context, attrs);
  12.         initWidthAndHeight(context);
  13.         initMainCircle();
  14.         initEnemyCircles();
  15.         initPaint();
  16.     }
  17.  
  18.     void initEnemyCircles() {
  19.                 circles = new ArrayList<EnemyCircle>();
  20.                 for (int i = 0; i < MAX_CIRCLES; i++) {
  21.                         EnemyCircle circle;
  22.                         circle = EnemyCircle.getRandomCircle();
  23.                         circles.add(circle);
  24.                 }
  25.         calculateAndSetCirclesColor();
  26.     }
  27.  
  28.  
  29.     void initMainCircle() {
  30.         mainCircle = new MainCircle(width/2, height/2);
  31.     }
  32.  
  33.     void initPaint() {
  34.         paint = new Paint(); // Создание кисточки
  35.         paint.setAntiAlias(true);//сглаживание
  36.         paint.setStyle(Paint.Style.FILL); //Заполнение кружка цветом
  37.     }
  38.  
  39.     void initWidthAndHeight(Context context) {
  40.                 WindowManager windowManager = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
  41.                 Display display = windowManager.getDefaultDisplay();
  42.                 Point point = new Point();
  43.                 display.getSize(point);
  44.                 width = point.x;
  45.                 height = point.y;
  46.             }
  47.  
  48.  
  49.     @Override
  50.     protected void onDraw(Canvas canvasFromMethod) {
  51.         super.onDraw(canvasFromMethod);
  52.         canvas = canvasFromMethod;
  53.         drawCircle(mainCircle);
  54.         for (EnemyCircle circle : circles) {
  55.             drawCircle(circle);
  56.         }
  57.  
  58.     }
  59.     private void calculateAndSetCirclesColor() {
  60.                 for (EnemyCircle circle : circles) {
  61.                     Log.d("mylog", circle.getColor() + "bef");
  62.                         circle.setEnemyOrFoodColorDependsOn(mainCircle);
  63.                     Log.d("mylog", circle.getColor() + "after");
  64.                     }
  65.     }
  66.  
  67.  
  68.  
  69.     @Override
  70.      public boolean onTouchEvent(MotionEvent event) {
  71.                 int x = (int) event.getX();
  72.                 int y = (int) event.getY();
  73.                 if (event.getAction() == MotionEvent.ACTION_MOVE) {
  74.                     mainCircle.moveMainCircleWhenTouchAt(x, y);
  75.                     }
  76.                 invalidate();//ОБНОВЛЕНИЕ
  77.                 return true;
  78.             }
  79.     //Для того, чтобы в этот метод подавать и другие круги
  80.     @Override
  81.     public void drawCircle(SimpleCircle circle) {
  82.         paint.setColor(circle.getColor());
  83.         canvas.drawCircle(circle.getX(), circle.getY(), circle.getRadius(), paint);
  84.     }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement