我的问题一开始可能读起来很困惑,所以请耐心等待。我将从上下文的小序言开始:
前言:
我有一个应用程序将使用数组从 map 中查找路径。
^那是很模糊的:会有一个字符数组,代表墙壁、楼梯等,并且会有一个找到最佳路径的函数。
我想在android屏幕上显示路径。
数组函数生成的字符代表生成的路径(可能是“x”或其他)。
好吧,说得更清楚一点:数组中将有一个 'x' 的“路径”。这些“x”代表将要显示在 Android 屏幕上的路径。
我的实际问题:
如何将数组中的“x”转换为在屏幕上显示一行?我想到了使用 for 循环/if 语句来检查如果有一个“x”,如果有,则在代表实际屏幕的第二个数组中显示一个小红点/线。
我试图找到它,但在 google 中输入它是如此尴尬,所以我一无所获地完成了我的研究。
是否有某种内置的 android 函数可以让您为不同的坐标分配不同的颜色?
最佳答案
有几种方法可以实现将坐标系映射到描述路径的矩阵的效果。
根据数组的大小和更新调用的频率(听起来路径查找在一次渲染后运行一次),循环遍历可能不会太昂贵。我个人会做的是开始研究如何在 Canvas 上绘图、获取屏幕尺寸并相应地调整边界。
Get screen dimensions in pixels - 如何获取屏幕尺寸 http://danielnadeau.blogspot.com/2012/01/android-canvas-beginners-tutorial.html - 一个很好的 Canvas 教程
一旦您可以在缩放的 Canvas 上绘图,只需运行一个类似于以下内容的循环即可:
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
关于android - 使用坐标系在android屏幕上绘图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15489135/