我有一个点阵列和一个面板。getWidth()
基于面板。想象一下你手中的牌,这HAND_CARD_WIDTH
是不言自明的。这个循环的目的是在面板上均匀地设置点,它确实如此。但是,它允许卡片离开面板,这使得它看起来很糟糕。我想要做的是在面板的两边留出一个小的空白边距,不管你手里有多少张牌。
这是代码
int iteration = 1;
int limiter = getWidth();
int slice = (limiter/(handsize+1));
while (points.size() < handsize) {
int x = slice*(iteration++);
x -= HAND_CARD_WIDTH/2;
points.add(new Point(x, y));
}
基本上我希望最左边x
的是至少20
,最右边的是最多getWidth() - 20 - HAND_CARD_WIDTH
。我还希望卡片间隔均匀......我只是想不出正确的方程式(可悲的是,达到这一点是一项壮举......)。
谢谢,根据回复(全部 2 个),我选择了以下内容:
if((int)points.get(0).getX() < margin){
int boost = Math.abs(margin - (int)points.get(0).getX());
slice = (boost*2)/handsize;
for(Point p : points){
p.x += boost;
boost -= slice;
}
}