什么是java.awt.geom.Area的android等价物?

我想build立复杂的形状作为两个圆形和一个矩形的交集。 经过研究, java.awt.geom.Area类似乎是完美的任务。

然而,当我发现awt软件包没有附带android SDK的时候,我感到非常awt 。 有谁知道的任何替代品的Android,允许我创build复杂的形状通过定义联合和简单形状的交集?

注意:使用graphics裁剪来绘制形状是行不通的,因为我不只是想绘制形状,我还希望将形状存储在内存中以进行碰撞检测和其他交互。

Solutions Collecting From Web of "什么是java.awt.geom.Area的android等价物?"

Android java.awt.geom.Area的替代软件

编辑 :@numan指出了一个很好的select,使用Android SDK中的一些类,我不知道在原来的答案时:

https://developer.android.com/reference/android/graphics/Region.html https://developer.android.com/reference/android/graphics/Region.Op.html

Region允许您定义几何区域,然后可以使用Region.Op enum Region s op()方法来计算交点和更复杂的形状。

其他一些选项

您可以使用Canvas绘制自定义形状,特别是使用剪辑*方法:

http://developer.android.com/reference/android/graphics/Canvas.html

这里是一些关于Android的2Dgraphics的页面:

http://developer.android.com/guide/topics/graphics/2d-graphics.html http://developer.android.com/guide/topics/graphics/2d-graphics.html#shape-drawable http:// developer.android.com/guide/topics/graphics/opengl.html

如果您的graphics保持相同(或大致相同),则可以使用其他一些很好的选项:基于XML:

http://developer.android.com/guide/topics/graphics/2d-graphics.html#drawables-from-xml

我发现一个很整齐的解决scheme是使用9个补丁的drawables:

http://developer.android.com/guide/topics/graphics/2d-graphics.html#nine-patch

碰撞检测这可能是为了你的目的矫枉过正,但有一些游戏物理库:

http://www.andengine.org http://code.google.com/p/andengineexamples/

http://bulletphysics.org

http://www.emini.at/

http://www.dremsus.com/index.php/2012/01/box2d-game-demo-in-android/

Android,libgdx和box2d基础知识

或者你可以推出自己的解决scheme:

http://cooers.blogspot.com/2012/08/simple-collision-detection-in-2d.html

http://content.gpwiki.org/index.php/Polygon_Collision

http://www.codeproject.com/Questions/244344/Collision-Detection-in-Android

Android上旋转位图的碰撞检测

这真的取决于目的; 对于游戏,你可能最好只使用一个库; 但是如果碰撞检测是您需要的唯一function,您最好自己动手节省资源。

额外信用:Android库的一些索引

http://www.appbrain.com/stats/libraries/dev

http://www.theultimateandroidlibrary.com/

http://www.openintents.org/en/

Android UI使用Skia进行graphics渲染,而skia使用“ 区域”抽象对path或Rects上的形状(例如相交,联合,减去。参见Region.Op类)形状进行设置操作。

使用Region.quickContains或Region.quickReject方法,Region类也可以用于简单的碰撞检测。