OwnLang << 1 ... 43 44 45 46 47 ... 60 >> 19.01.2019 / 16:28 | | aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Koenig, лучше ссылку кинь, а не скриншот. Так и не нашел, где 404 выпала.
__________________
let live |
19.01.2019 / 16:53 | | aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Alexandr, отрисовка выглядит так: @Override
public void onDraw(Canvas canv) {
canv.drawColor(0xFFFFFFFF);
if (bitmap != null) {
canv.drawBitmap(bitmap, 0, 0, bitmapPaint);
}
}
repaint тоже несложный: if (Looper.myLooper() == Looper.getMainLooper()) {
canvasView.invalidate();
} else {
Console.blockingTask(canvasView::invalidate);
}
На bitmap всё рисуется из GraphicsValue, который от showcanvas() получается. __________________
let live |
19.01.2019 / 23:10 | | Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Цитата 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 Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Alexandr, нет, SurfaceView. А можешь свой код показать?
__________________
let live Изменено aNNiMON (19.01 / 23:27) (всего 1 раз) |
19.01.2019 / 23:22 | | aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| А протестируйте, пожалуйста, программу. Не пойму, 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 кб.) Скачано 177 раз |
19.01.2019 / 23:35 | | Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Цитата aNNiMON: Alexandr, нет, SurfaceView. А можешь свой код показать?Открыть спойлер Закрыть спойлер use "std"
use "canvas"
g = showcanvas()
def ball(x, y, r) = {
"x": x
"y": y
"r": r
}
b = ball(50, 50, 10)
g.drawColor(#FF000000)
while (true) {
g.setColor(#FF000000)
g.drawRect(0, 0, WIDTH, HEIGHT)
g.setColor(#FF00ff00)
g.drawCircle(b.x, b.y, b.r)
repaint()
if (b.x + b.r > WIDTH || b.y + b.r > HEIGHT) b = ball(0, 0, 10)
b.x += 3
b.y += 3
//sleep(33)
}
Может это оно только у меня дико моргает, как на 4 так и на 7 андроиде. |
19.01.2019 / 23:47 | | Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Цитата aNNiMON: А протестируйте, пожалуйста, программу. Не пойму, apk отлично собирается как на 4.0, так и на 9, но на 4.0 приложение работает, а на 9 крашится где-то внутри libart.so Собранные приложения на предыдНа 7.1.1 вылетает, на 4.2.2 нормально пошла. UPD: возможно это из-за arm 32 Изменено Alexandr (19.01 / 23:52) (всего 1 раз) |
19.01.2019 / 23:51 | | aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Alexandr, скорее всего дело в том, что в SurfaceView отрисовка происходит непрерывно и в некоторый момент (между закраской фона и отрисовкой круга) на битмапе фактически имеется только фон. Затем этот битмап отрисовывается и получается мигание.
__________________
let live |
20.01.2019 / 00:03 | | aNNiMON Супервизор Сейчас: Offline
Имя: Витёк Регистрация: 11.01.2010
| Alexandr, сделал два bitmap'a. На один рисуется, а второй копирует первый при вызове repaint(). Получается, что пока repaint() не вызовешь, картинку не получишь. И вот теперь не мигает. Но нужно потестировать, как оно с другими примерами и демками коррелирует. Если всё нормально будет, то оставлю как сделал. Но что-то мне кажется, что по памяти сильно бить будет. Каждый repaint - новый битмап. Надо как-то иначе делать. О, насчёт краша при сохранении. Посмотрел, это вообще внутри support library падает с ArrayIndexOutOfBoundsException А перед ним com.nononsenseapps.filepicker. __________________
let live Изменено aNNiMON (20.01 / 00:11) (всего 2 раза) |
20.01.2019 / 00:17 | | Alexandr Пользователь Сейчас: Offline
Имя: Александр Откуда: Днепр Регистрация: 01.07.2012
| Цитата aNNiMON: Alexandr, сделал два bitmap'a. На один рисуется, а второй копирует первый при вызове repaint(). Получается, что пока repaint() не вызовешь, картинку не получишь. И вот теперь не мигает.Где-то я это уже видел.. |
<< 1 ... 43 44 45 46 47 ... 60 >> Всего сообщений: 600 Фильтровать сообщения Поиск по теме Файлы топика (60)
|