Вверх ↑
Этот топик читают: Гость
Ответов: 1821
Рейтинг: 168
#1: 2012-07-01 20:52:21 ЛС | профиль | цитата
[offtop]Создал тему, потому что не нашёл аналогов по Java для Android.[/offtop]
Есть у меня вопрос. Код:

#cpp
@SuppressLint("DrawAllocation")
@Override
protected void onDraw(Canvas c) {
int i, j;
Paint p;

p = new Paint();

c.drawColor(Color.WHITE); //Draws white color as color of background

for(i = 0; i <= getWidth(); i =+ 7) {
for(j = 0; j <= getHeight(); j =+ 7) {
c.drawPoint(i, j, p); //Draws the points
}
}
}
}
При отрисовке точек (метка Draws the points) приложение зависает. И это только в цикле, даже при одной итерации. Кстати время отрисовки ~ 1 мс и если отрисовывать вручную (без цикла) 10 точек - не виснет. То есть, зависает программа только при отрисовке точек в цикле. Почему так
карма: 5

0
Ответов: 1528
Рейтинг: 57
#2: 2012-07-01 21:05:12 ЛС | профиль | цитата
sаmakacd, потому что у тебя значение всегда одно и тоже в i и j
карма: 0

0
Ответов: 1821
Рейтинг: 168
#3: 2012-07-01 21:06:11 ЛС | профиль | цитата
hitman249, всмысле? Я же точки через цикл рисую...
карма: 5

0
Ответов: 1528
Рейтинг: 57
#4: 2012-07-01 21:10:02 ЛС | профиль | цитата
i =+ 7
это:
i = 7
i = i+7

итог, значение в переменной всегда 14
------------ Дoбавленo в 21.10:
правильно сначала складывать, а уже потом присваивать
карма: 0

0
Ответов: 1821
Рейтинг: 168
#5: 2012-07-01 21:13:11 ЛС | профиль | цитата
hitman249, а разве не так?

i=0 -> i=i+7 -> i=0+7 -> i=7
i=7 -> i=i+7 -> i=7+7 -> i=14
i=14 -> i=i+7 -> i=14+7 -> i=21
...
------------ Дoбавленo в 21.13:
hitman249 писал(а):
правильно сначала складывать, а уже потом присваивать
А то я уже подумал что здесь всё наоборот
карма: 5

0
Ответов: 1528
Рейтинг: 57
#6: 2012-07-01 21:15:30 ЛС | профиль | цитата
sаmakacd, так получится только в таком уравнении
i += 7
------------ Дoбавленo в 21.15:
ликбез
карма: 0

1
Голосовали:sаmakacd
Ответов: 1821
Рейтинг: 168
#7: 2012-07-01 21:17:21 ЛС | профиль | цитата
hitman249, спасибо, видимо я чего-то не дочитал, думал что это одно и то же
карма: 5

0
Ответов: 5446
Рейтинг: 323
#8: 2012-07-01 21:20:30 ЛС | профиль | цитата
hitman249 писал(а):
i =+ 7
это:
i = 7
i = i+7

Да? А разве в java "+" не восприместя как знак числа?
карма: 1

0
Ответов: 1528
Рейтинг: 57
#9: 2012-07-01 21:26:53 ЛС | профиль | цитата
iarspider,
1 - в яве скорее всего нет такого понятия как число с плюсом (не вкурсе на 100% достоверность)
2 - математический знак со знаком равно без пробела является двойным оператором
3 - выражение "=-7" и "= -7" не одно и тоже
карма: 0

0
Разработчик
Ответов: 4698
Рейтинг: 426
#10: 2012-07-02 01:26:04 ЛС | профиль | цитата
hitman249 писал(а):
3 - выражение "=-7" и "= -7" не одно и тоже

Да ну? И чем же они отличаются?

В первом примере ошибок компиляции потому и не было, что знак отдавался числу, т.е. "i =+ 7" -> "i = +7" -> "i = 7"
карма: 10
0
Ответов: 5446
Рейтинг: 323
#11: 2012-07-02 04:30:31 ЛС | профиль | цитата
hitman249, посоветовался с коллегами на другом форуме - я прав, и "+" воспринимается как знак числа.
карма: 1

0
Ответов: 1528
Рейтинг: 57
#12: 2012-07-02 07:34:28 ЛС | профиль | цитата
iarspider, точно.
карма: 0

0
Ответов: 1821
Рейтинг: 168
#13: 2012-07-02 20:11:20 ЛС | профиль | цитата
Как "сконвертировать" Canvas в Bitmap? И как отрисовать Canvas на Canvas'е
карма: 5

0
Ответов: 1528
Рейтинг: 57
#14: 2012-07-03 05:31:38 ЛС | профиль | цитата
sаmakacd, [flood]
http://habrahabr.ru/post/107757/
http://stackoverflow.com/questions/4013725/converting-a-canvas-into-bitmap-image-in-android
https://groups.google.com/forum/?fromgroups#!topic/android-beginners/6pO8SJN3CTY[/flood]
------------ Дoбавленo в 05.31:
sаmakacd, а зачем отрисовывать canvas в canvas-е?
где вы будете их хранить ? это ведь визуальный компонент на форме, можно сказать такойже как кнопка, и все ваши "холсты" будут виднеться и тратить over9000 ресурсов телефона
карма: 0

1
Голосовали:sаmakacd
Ответов: 1821
Рейтинг: 168
#15: 2012-07-03 11:39:25 ЛС | профиль | цитата
hitman249, функция выдаёт мне Canvas, мне нужно его отрисовать. Хотя, я уже разобрлся, нужно конверертировать Canvas в Matrix, и потом рисовать Matrix на Canvas'е.
карма: 5

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)