我开发了一款类似于玩家的四人黑桃卡片游戏。我使用imageviews来显示玩家的手牌。我想把每个球员的手都呈弧形(就像在现实生活中一样)。我想我应该使用轮换和翻译。我应该怎么做?你知道那些教程吗? 提前谢谢。
答案 0 :(得分:3)
我的第一个想法是做以下事情:
<强>定位强>
要创建弧线,我会使用FrameLayout
来保持ImageViews
。这样做的好处是可以轻松覆盖视图。我会用中心设定位置。这样,您可以使用y = - (x*scale)^2 + offset
之类的函数轻松计算位置。以下是您可以使用的示例:Click。但是你需要稍微调整一下这些值来获得一个看起来不错的功能。此外,y轴应该在屏幕的中间(或者您可以通过减去screenwidth / 2或类似的方式来修改方法的输入)。要实际定义位置,您需要修改ImageView
轮换强>
由于每张卡应具有不同的旋转,我将定义最大角度和最小角度。 (那些可能在15°和30°之间== pi / 12和pi / 6)
要了解有关轮换本身的更多信息,谷歌可能会有所帮助。我马上:
Scale & rotate Bitmap using Matrix in Android
Android: How to rotate a bitmap on a center point
<强> Z-顺序强>
要处理FrameLayout
中的z顺序,您可以使用FrameLayout
继承自ViewGroup
的{{3}}。我会将卡存储在一个数组中并迭代它,在每个bringChildToFront
上调用ImageView
。
这绝对只是一个起点,但如果遇到更具体的问题,你会得到更具体的问题答案!