我的问题最初可能会让人很困惑,所以请耐心等待。我将从上下文的一个前言开始:
前言
我有一个应用程序将使用数组从地图中寻找路径。
^这很模糊:会有一系列人物,代表墙壁,楼梯等,并且会有一个找到最佳路径的功能。
我想在Android屏幕上显示路径。
数组函数生成的字符代表生成的路径(可能是“x”或其他东西)。
好的,更清楚一点:数组中会有一个“x”的“路径”。这些'x'表示将在Android屏幕上显示的路径。
我的实际问题:
如何将数组中的'x'翻译为在屏幕上显示一行? 我有想法使用for loop / if语句检查如果有'x'并且如果有,则在第二个数组中显示一个小红点/线,代表实际屏幕。
我试图找到这个,但输入谷歌这是一件很尴尬的事情,所以我什么都没做完我的研究。
是否有某种内置的Android功能可以让您为不同的坐标指定不同的颜色?
答案 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