2013-03-18 5 views
1

Мой вопрос, вероятно, будет изначально очень запутанным для чтения, поэтому просто несите меня. Начну его с небольшим предисловием для связи:Рисунок на экране андроида с системой координат

Предисловие:

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

^Это очень неопределенно: будет множество символов, представляющих стены, лестницы и т. Д., И будет функция, которая найдет лучший путь.

Я хочу показать путь на экране андроида.

Будут символы, которые генерируются функцией массива, которые представляют сгенерированный путь (возможно, «x» или что-то еще).


Хорошо, чтобы сделать его более ясным: Там будет «пути» иксы в массиве. Эти «х» представляют собой путь, который будет отображаться на экране Android.


Мой актуальный вопрос:

Как перевести «х» в массиве отображения строки на экране? У меня возникла идея использовать оператор for/if, который проверяет наличие «x», а если есть, то отображать небольшую красную точку/строку во втором массиве, который представляет фактический экран.

Я пытался найти это, но это такая неудобная вещь, чтобы набрать в Google, поэтому я закончил свое исследование ни с чем.

Есть ли какая-то встроенная функция Android, позволяющая назначать разные цвета для разных координат?


This is kind of what I want to appear on the screen. If this were the app, the blue would be represented by 'x's in the first array.

+0

Если вы обнаружите, что пишете «, чтобы сделать его более понятным»/«это было неопределенно», подумайте о возврате и редактировании того, что, по вашему мнению, вам нужно сделать более понятным, вместо того, чтобы добавлять более подробное описание ниже.Возможно, было бы полезно извлечь пример из примера ASCII вашей проблемы? –

+0

Не я этого не понимал; Я просто предлагаю советы о том, как писать лучшие вопросы (это помогает им получить ответы). Если он/она ответит на ваш вопрос, пожалуйста, поддержите его/ее и «примите»! :) –

+0

Это круто! Я просто пытаюсь помочь - и я поддержал ваш вопрос :) –

ответ

1

может быть несколько способов достичь этого эффекта, имеющего отображения координат системы в матрицу, которая описывает путь.

В зависимости от размера массива и частоты вызовов обновления (это похоже на то, что поиск путей запускается один раз с помощью одного рендеринга после), вероятно, было бы слишком дорого, чтобы просто пропустить. То, что я лично сделаю, это начать смотреть, как рисовать на холсте, получать размер экрана и соответственно корректировать границы.

Get screen dimensions in pixels - Как получить размеры экрана http://danielnadeau.blogspot.com/2012/01/android-canvas-beginners-tutorial.html - Хороший учебник на полотнах

После того, как вы можете нарисовать на масштабное полотно, это просто вопрос запуска цикла, который выглядит примерно так:

float scale_x = screen_width/columns; 
float scale_y = screen_height/rows; //pixels per grid square 
for(int x = 0; x < columns; x++) 
for(int y = 0; y < rows; y++) 
if(data[x][y] == 'x') drawRect(x*scale_x, y*scale_y, scale_x,scale_y) //if something found, draw a colored square 
+0

Нет, но он дал отличный учебник, рад, что смог помочь – munch1324

Смежные вопросы