2012-10-17 48 views
4

大家好,感谢您的时间。这是实现这种图形设计的最佳方式吗? (Android)

问题简介:基本上主要的问题是,我设计了一个android平板电脑应用程序,我不知道究竟是哪一种实现我一直在想的设计的最佳方式。我一直在阅读,有可能使用Android之外的其他平台,比如OpenGL或HTML,但我实际上并不知道如何去做,如果有必要的话。

我该怎么做?我不知道该如何解释究竟这是使用的话我的想法,所以我决定编写一个关于它的小图像,那就是:

Design about what I attempt to implement

所以,这个想法是拖&降按钮移至颜色方块,并检测它们是否发生碰撞,如果发生这种情况,请启动一个事件。然后所有的按钮将自己再次订购。

那是哪个问题呢?我是新来的android,我不知道哪个是最好的方式来开始实现这个,如果我应该赌OpenGL或直接在android程序。在这两种情况下,这是最好的方式开始创建这样的事情?

最后一件事:我想澄清一些事情,以防万一:这不是任何有人要求我做的学校工作,我是由我自己做的。我是不问人们做我的工作我只是问你的意见,并寻求帮助和指导如何开始管理。 (所以我想你的专业意见,而不是任何一行代码):D

非常感谢你们所有人。 :)

马蒂。

回答

1

Open GL似乎是你最好的选择。我对Android OpenGL没有太多经验,但它将成为编写应用程序的最有效方式 - 因为您正在处理碰撞检测和颜色。

Android OpenGL将是最好的选择,因为它将由ADK本地编译,而HTML将在运行时解释。

至于使用普通的平淡的Android布局,我不会推荐,因为这不是使用标准组件的“标准”UI。您正在创建一个完全独特的图形化界面,因此我建议坚持这一点。

编辑:您将会发现,通过使用标准布局,您的所有用户界面组件都必须进行自定义,并且您将花费大量时间用onDraw()方法进行碰撞检测。

这样做的一个问题是您需要检查对象是否与另一个对象发生冲突,从而使某些类型的对象相互意识到,并且可能存在循环引用的风险。而如果你使用OpenGL,你可以有一个“Shape”类型的列表,然后有一个“checkCollision(Shape draggedObject)”方法,遍历整个形状列表并使用最简单对象的优化碰撞检测来检查碰撞。

第二个问题是在onDraw()方法中执行碰撞检测会使您的应用程序滞后,并在执行拖动时对用户看起来很粘。更多的组件越多的问题。

编辑2: 下面是Android的OpenGL的一些资源: http://developer.android.com/guide/topics/graphics/opengl.html
http://www.learnopengles.com/android-lesson-one-getting-started/
2D example with OpenGL

+0

同为我回答/问@Coderer,如何整合的OpenGL(或其他语言)来一个android项目?你有什么好的教程吗?谢谢! – TurboTi

+0

我已经添加了一些教程 - 只记得使用OpenGL的缺点是现在你必须自己管理大多数东西,比如拖动等。 –

+0

其实我并不害怕碰撞检测,因为我必须用一个方块来做,基本上我只需要检查我是否将圆形放在方形内部,所以我只会在放下对象的时候检查它:) 另一件给我的问题是,所有这些圈子都必须在被拖动时被动画,如果我用位图动态创建它们(所以它们不在main.xml中)现在我不知道如何为它们设置动画,大多数教程都使用视图布局和所有这些东西! – TurboTi

2

这听起来像它会是很容易使用的触摸事件在HTML/JavaScript来办,可能使用support library进行拖放事件。我不知道它对你是否重要,但该解决方案的好处是它可以很容易地从Android移植到其他移动设备。

像金廷说,如果性能是一个大问题,你可以在我看来,你不优化,去到OpenGL,但你也许可以击倒在HTML一个简单的原型在一天内下...

+0

所以,如果我想用OpenGL做到这一点,我应该从哪里开始,你建议我任何好的教程如何实现它?因为我必须承认,我不知道如何在项目中合并android和OpenGL。 除此之外,应用程序还使用了我已经在Android中实现的声音处理,所以我不知道如果我去OpenGL会造成什么麻烦。 并且在我尝试使用HTML的情况下,和以前一样?哪种方法可以合并两种语言? 非常感谢! – TurboTi

1

”不需要任何框架。你可以用android做到这一切。我也会建议你使用android。我不是一个好的设计师,但我的建议是这个:

2倍的FrameLayout,对于左侧,一个用于rightside 对于色彩工具色彩工具,为每个2种颜色可以使用的LinearLayout 。如果你想要精确的后备设计,你可以使用图像软件进行设计,并可以在后台进行设置。 为颜色,您可以使用imageButton。

,我也建议你阅读教程如何设计的应用程序,这里是一个很好的教程:http://mobile.tutsplus.com/tutorials/android/android-layout/

相关问题