Вниз  OwnLang
- 19.01.2019 / 16:28
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Koenig, лучше ссылку кинь, а не скриншот. Так и не нашел, где 404 выпала.
__________________
 let live
- 19.01.2019 / 16:53
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Alexandr, отрисовка выглядит так:
  1. @Override
  2. public void onDraw(Canvas canv) {
  3.     canv.drawColor(0xFFFFFFFF);
  4.     if (bitmap != null) {
  5.         canv.drawBitmap(bitmap, 0, 0, bitmapPaint);
  6.     }
  7. }
repaint тоже несложный:
  1. if (Looper.myLooper() == Looper.getMainLooper()) {
  2.     canvasView.invalidate();
  3. } else {
  4.     Console.blockingTask(canvasView::invalidate);
  5. }
На bitmap всё рисуется из GraphicsValue, который от showcanvas() получается.
__________________
 let live
- 19.01.2019 / 23:10
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Цитата aNNiMON:
Alexandr, отрисовка выглядит так:
[code=java]@Override
public void onDraw(Canvas canv) {
     canv.drawColor(0xFFFFFFFF);
     if (bitmap != null) {
         canv.drawBitmap(bitmap, 0, 0, bitmapPain
Это из обычного View?
- 19.01.2019 / 23:14
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Alexandr, нет, SurfaceView.
А можешь свой код показать?
__________________
 let live

Изменено aNNiMON (19.01 / 23:27) (всего 1 раз)
- 19.01.2019 / 23:22
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
А протестируйте, пожалуйста, программу.
Не пойму, apk отлично собирается как на 4.0, так и на 9, но на 4.0 приложение работает, а на 9 крашится где-то внутри libart.so
Собранные приложения на предыдущих версиях OwnLang работают и на 4.0, и на 9. В проекте изменилось только то, что теперь для Java 8 используется не Retrolambda, а стандартный desugar.
Может быть дело в почти стоковое прошивке 9-ки.
__________________
 let live

Изменено aNNiMON (19.01 / 23:27) (всего 2 раза)


Прикрепленные файлы:
TouchApp.apk (106.1 кб.) Скачано 156 раз
- 19.01.2019 / 23:35
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Цитата aNNiMON:
Alexandr, нет, SurfaceView.
А можешь свой код показать?
Открыть спойлер
Может это оно только у меня дико моргает, как на 4 так и на 7 андроиде.
- 19.01.2019 / 23:47
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Цитата aNNiMON:
А протестируйте, пожалуйста, программу.
Не пойму, apk отлично собирается как на 4.0, так и на 9, но на 4.0 приложение работает, а на 9 крашится где-то внутри libart.so
Собранные приложения на предыд
На 7.1.1 вылетает, на 4.2.2 нормально пошла. :gg:
UPD: возможно это из-за arm 32

Изменено Alexandr (19.01 / 23:52) (всего 1 раз)
- 19.01.2019 / 23:51
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Alexandr, скорее всего дело в том, что в SurfaceView отрисовка происходит непрерывно и в некоторый момент (между закраской фона и отрисовкой круга) на битмапе фактически имеется только фон. Затем этот битмап отрисовывается и получается мигание.
__________________
 let live
- 20.01.2019 / 00:03
aNNiMON
  Супервизор

aNNiMON 
Сейчас: Offline
Alexandr, сделал два bitmap'a. На один рисуется, а второй копирует первый при вызове repaint(). Получается, что пока repaint() не вызовешь, картинку не получишь. И вот теперь не мигает. Но нужно потестировать, как оно с другими примерами и демками коррелирует. Если всё нормально будет, то оставлю как сделал. Но что-то мне кажется, что по памяти сильно бить будет. Каждый repaint - новый битмап. Надо как-то иначе делать.

О, насчёт краша при сохранении. Посмотрел, это вообще внутри support library падает с ArrayIndexOutOfBoundsException :gg: А перед ним com.nononsenseapps.filepicker.
__________________
 let live

Изменено aNNiMON (20.01 / 00:11) (всего 2 раза)
- 20.01.2019 / 00:17
Alexandr
  Пользователь

Alexandr 
Сейчас: Offline
Цитата aNNiMON:
Alexandr, сделал два bitmap'a. На один рисуется, а второй копирует первый при вызове repaint(). Получается, что пока repaint() не вызовешь, картинку не получишь. И вот теперь не мигает.
Где-то я это уже видел.. :gg:
Наверх  Всего сообщений: 594
Фильтровать сообщения
Поиск по теме
Файлы топика (60)