android - 使用坐标系在android屏幕上绘图

标签 android arrays drawing screen path-finding

我的问题一开始可能读起来很困惑,所以请耐心等待。我将从上下文的小序言开始:

前言:

我有一个应用程序将使用数组从 map 中查找路径。

^那是很模糊的:会有一个字符数组,代表墙壁、楼梯等,并且会有一个找到最佳路径的函数。

我想在android屏幕上显示路径。

数组函数生成的字符代表生成的路径(可能是“x”或其他)。


好吧,说得更清楚一点:数组中将有一个 'x' 的“路径”。这些“x”代表将要显示在 Android 屏幕上的路径。


我的实际问题:

如何将数组中的“x”转换为在屏幕上显示一行?我想到了使用 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.

最佳答案

有几种方法可以实现将坐标系映射到描述路径的矩阵的效果。

根据数组的大小和更新调用的频率(听起来路径查找在一次渲染后运行一次),循环遍历可能不会太昂贵。我个人会做的是开始研究如何在 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/

相关文章:

java - 在 AlertDialog 中应该使用什么 LayoutParams?

php - 带有包含数组的列的 Laravel 批量插入

arrays - N 维数组的实际使用,其中 (N>3)

iphone - 为什么我的 3D 旋转图像与另一幅图像相交?

android - 如何在 onSaveInstanceState 上存储 recyclerview 数据

android - 如何检测 ScrollView 何时到达底部以便我可以将更多项目加载到其中?

Android:在 htc Hero 上选择 Gmail 应用程序时,带有 EXTRA_STREAM 的 Intent.ACTION_SEND 不会附加任何图像

Java:将数组写入文本文件

html - 那里已经有 AngularJS 的 Canvas 绘图指令了吗?

java - 如何将PNG图像绘制到JPanel上?