Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 21 сен 2017, 02:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 14 июл 2014, 03:00 
Администратор
Аватар пользователя

Зарегистрирован: 07 янв 2012, 11:32
Сообщений: 1345
Благодарил (а): 0 раз.
Поблагодарили: 72 раз.

В этом уроке:


- рассматриваем PathEffect-объекты




Click here to read this article!

_________________
Добро пожаловать на форум сайта StartAndroid
ИзображениеИзображение


Последний раз редактировалось damager82 31 май 2017, 17:27, всего редактировалось 3 раз(а).

Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 28 авг 2015, 18:31 

Зарегистрирован: 13 авг 2015, 12:22
Сообщений: 7
Откуда: Kharkiv
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
"Если вы этот отступ повесите в цикл, то линия оживет и поедет на месте." Как повесить отступ в цикл?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 28 авг 2015, 18:41 
Аватар пользователя

Зарегистрирован: 25 авг 2015, 10:54
Сообщений: 51
Благодарил (а): 2 раз.
Поблагодарили: 9 раз.
До этого урока я ещё не дошёл, пока что на 120.
Но циклы в Андроиде это циклы из Java/
Вот, например, лекция о них: http://kostin.ws/java/java-loops.html

_________________
Изображение


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 28 авг 2015, 21:57 
Аватар пользователя

Зарегистрирован: 23 ноя 2013, 16:08
Сообщений: 1106
Откуда: Ukraine
Благодарил (а): 30 раз.
Поблагодарили: 175 раз.
Juki писал(а):
"Если вы этот отступ повесите в цикл, то линия оживет и поедет на месте." Как повесить отступ в цикл?

Как ты попал на 151й урок :D ?

_________________
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 29 авг 2015, 10:10 

Зарегистрирован: 13 авг 2015, 12:22
Сообщений: 7
Откуда: Kharkiv
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
doter.ua писал(а):
Как ты попал на 151й урок :D ?

p3.setPathEffect(new DashPathEffect(new float[] { 50, 10, 5, 10 }, 25)); если эту строчку впихнуть даже в бесконечный цикл, то ничего не происходит. Хотя за отступ тут отвечает, только второй параметр, но как его повесить в цикл мне не совсем понятно. А это совершенно не означает, что я не умею с циклами работать


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 29 авг 2015, 10:26 
Аватар пользователя

Зарегистрирован: 23 ноя 2013, 16:08
Сообщений: 1106
Откуда: Ukraine
Благодарил (а): 30 раз.
Поблагодарили: 175 раз.
Juki писал(а):
doter.ua писал(а):
Как ты попал на 151й урок :D ?

p3.setPathEffect(new DashPathEffect(new float[] { 50, 10, 5, 10 }, 25)); если эту строчку впихнуть даже в бесконечный цикл, то ничего не происходит. Хотя за отступ тут отвечает, только второй параметр, но как его повесить в цикл мне не совсем понятно. А это совершенно не означает, что я не умею с циклами работать

Создай переменную со значением 0 и цикл в котором будешь увеличивать её на 1 и выводить в лог. И проверку в конце если больше 100 - остановить цикл или сбросить переменную присвоив ей 0. Это не запустить полоску, но с циклами познакомишься.

_________________
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 29 авг 2015, 11:49 

Зарегистрирован: 13 авг 2015, 12:22
Сообщений: 7
Откуда: Kharkiv
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
doter.ua писал(а):
Создай переменную со значением 0 и цикл в котором будешь увеличивать её на 1 и выводить в лог. И проверку в конце если больше 100 - остановить цикл или сбросить переменную присвоив ей 0. Это не запустить полоску, но с циклами познакомишься.

С циклами я еще в 6-м классе познакомилась! Ты анимацию по этому уроку сделал?


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 29 авг 2015, 14:00 
Аватар пользователя

Зарегистрирован: 23 ноя 2013, 16:08
Сообщений: 1106
Откуда: Ukraine
Благодарил (а): 30 раз.
Поблагодарили: 175 раз.
Juki писал(а):
doter.ua писал(а):
Создай переменную со значением 0 и цикл в котором будешь увеличивать её на 1 и выводить в лог. И проверку в конце если больше 100 - остановить цикл или сбросить переменную присвоив ей 0. Это не запустить полоску, но с циклами познакомишься.

С циклами я еще в 6-м классе познакомилась! Ты анимацию по этому уроку сделал?

Только читал. "Повесить в цикл" довольно абстрактный совет. Вызов OnDraw прорисует 1 frame. Что норм для статичной картинки, но не анимации. Циклы внутри онДроу юзлес т.к. отрисуется только последний вариант. Один из способов проанимировать: postDelayed + invalidate().

_________________
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 29 авг 2015, 15:42 

Зарегистрирован: 13 авг 2015, 12:22
Сообщений: 7
Откуда: Kharkiv
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
doter.ua писал(а):
Один из способов проанимировать: postDelayed + invalidate().


Спасибо, можно было сразу так ответить.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 29 авг 2015, 23:18 
Аватар пользователя

Зарегистрирован: 23 ноя 2013, 16:08
Сообщений: 1106
Откуда: Ukraine
Благодарил (а): 30 раз.
Поблагодарили: 175 раз.
Juki писал(а):
doter.ua писал(а):
Один из способов проанимировать: postDelayed + invalidate().


С циклами я еще в 6-м классе познакомилась!.

А сейчас в 7м классе :D ?

_________________
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 31 авг 2015, 11:35 

Зарегистрирован: 13 авг 2015, 12:22
Сообщений: 7
Откуда: Kharkiv
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
doter.ua писал(а):
А сейчас в 7м классе :D ?

Ха-ха


Вернуться наверх
 Профиль  
 
 Заголовок сообщения: Re: Урок 151. Рисование. PathEffect
СообщениеДобавлено: 31 авг 2015, 21:07 

Зарегистрирован: 13 авг 2015, 12:22
Сообщений: 7
Откуда: Kharkiv
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
doter.ua писал(а):
Один из способов проанимировать: postDelayed + invalidate().


Код: [ Загрузить ] [ Скрыть ]
  1. public class MainActivity extends Activity { 
  2.  
  3.     @Override 
  4.     protected void onCreate(Bundle savedInstanceState) { 
  5.         super.onCreate(savedInstanceState); 
  6.         setContentView(new DrawView(this)); 
  7.     } 
  8.  
  9.     class DrawView extends SurfaceView implements SurfaceHolder.Callback { 
  10.  
  11.         Path path; 
  12.         Paint p1; 
  13.         Paint p2; 
  14.         Paint p3; 
  15.  
  16.         private DrawThread drawThread; 
  17.  
  18.         public DrawView(Context context) { 
  19.             super(context); 
  20.             path = new Path(); 
  21.             path.rLineTo(100, 300); 
  22.             path.rLineTo(100, -100); 
  23.             path.rLineTo(100, 300); 
  24.  
  25.             p1 = new Paint(Paint.ANTI_ALIAS_FLAG); 
  26.             p1.setStyle(Paint.Style.STROKE); 
  27.             p1.setStrokeWidth(3); 
  28.  
  29.             getHolder().addCallback(this); 
  30.         } 
  31.  
  32.         @Override 
  33.         public void surfaceChanged(SurfaceHolder holder, int format, int width, 
  34.                                    int height) { 
  35.  
  36.         } 
  37.  
  38.         @Override 
  39.         public void surfaceCreated(SurfaceHolder holder) { 
  40.             drawThread = new DrawThread(getHolder()); 
  41.             drawThread.setRunning(true); 
  42.             drawThread.start(); 
  43.         } 
  44.  
  45.         @Override 
  46.         public void surfaceDestroyed(SurfaceHolder holder) { 
  47.             boolean retry = true; 
  48.             drawThread.setRunning(false); 
  49.             while (retry) { 
  50.                 try { 
  51.                     drawThread.join(); 
  52.                     retry = false; 
  53.                 } catch (InterruptedException e) { 
  54.                 } 
  55.             } 
  56.         } 
  57.  
  58.         class DrawThread extends Thread { 
  59.             private long prevTime; 
  60.  
  61.             private boolean running = false; 
  62.             private SurfaceHolder surfaceHolder; 
  63.  
  64.             public DrawThread(SurfaceHolder surfaceHolder) { 
  65.                 prevTime = System.currentTimeMillis(); 
  66.                 this.surfaceHolder = surfaceHolder; 
  67.             } 
  68.  
  69.             public void setRunning(boolean running) { 
  70.                 this.running = running; 
  71.             } 
  72.  
  73.             @Override 
  74.             public void run() { 
  75.                 Canvas canvas; 
  76.  
  77.                 p2 = new Paint(p1); 
  78.                 p2.setColor(Color.GREEN); 
  79.  
  80.                 p3 = new Paint(p1); 
  81.                 p3.setColor(Color.BLUE); 
  82.  
  83.                 int i=5; 
  84.                 while (running) { 
  85.                     long now = System.currentTimeMillis(); 
  86.                     long elapsedTime = now - prevTime; 
  87.                     if (elapsedTime > 30){ 
  88.                         prevTime = now; 
  89.                         p2.setPathEffect(new DashPathEffect(new float[] { 30, 10}, i)); 
  90.                         p3.setPathEffect(new DashPathEffect(new float[] { 50, 10, 5, 10 }, i+15)); 
  91.                         i++; 
  92.                     } 
  93.                     canvas = null; 
  94.                     try { 
  95.                         canvas = surfaceHolder.lockCanvas(null); 
  96.                         if (canvas == null) 
  97.                             continue; 
  98.                         canvas.drawARGB(80, 102, 204, 255); 
  99.  
  100.                         canvas.translate(20, 50); 
  101.                         canvas.drawPath(path, p2); 
  102.  
  103.                         canvas.translate(150, 0); 
  104.                         canvas.drawPath(path, p3); 
  105.                     } finally { 
  106.                         if (canvas != null) { 
  107.                             surfaceHolder.unlockCanvasAndPost(canvas); 
  108.                         } 
  109.                     } 
  110.                 } 
  111.             } 
  112.         } 
  113.  
  114.     } 
  115.  


у меня получилось, но только используя SurfaceView.


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 3 часа


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
cron
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB