原理我认为讲的最好的还是
http://blog.csdn.net/ityuany/archive/2009/08/25/4481631.aspx
代码:
for (int i = 0; i < 20; i++) {
for (int j = 0; j < 6; j++) {
if (i % 2 == 0)
g.drawImage(img,(j-1)*img.getWidth(), (i-1) * img.getHeight()/2, 0);
else
g.drawImage(img,img.getWidth()*(j-1)+img.getWidth()/2 ,(i-1)*img.getHeight()/2 ,0);
效果图: