NineGridLayout
NineGridLayout copied to clipboard
把问题弄简单才是人们所追求的
继承ViewGroup 定义新的布局文件不是人们所熟悉的,大部分人会被你这个继承吓走了,如何深入了解你的实现,如何更好地去使用呢?
从基本布局入手FrameLayout 才是最好的选择,使用margin 来定位每个View。
/**
* 计算显示9 张图片每一张图片的margin
* @return [marginLeft, marginRight]
*/
public static int[] getCircleImageMargin(int imageSize,int count) {
//计算坐标
int x, y;
switch (count) {
case 0:
case 1:
case 2:
y = 0;
break;
case 3:
case 4:
case 5:
y = 1;
break;
default:
y = 2;
}
switch (count) {
case 0:
case 3:
case 6:
x = 0;
break;
case 1:
case 4:
case 7:
x = 1;
break;
default:
x = 2;
}
int left = (imageSize + DimenUtils.dip2px(App.sInstance, 2)) * x;
int top = (imageSize + DimenUtils.dip2px(App.sInstance, 2)) * y;
return new int[]{left, top};
}
继承ViewGroup 定义新的布局文件不是人们所熟悉的,大部分人会被你这个继承吓走了,如何深入了解你的实现,如何更好地去使用呢?
从基本布局入手FrameLayout 才是最好的选择,使用margin 来定位每个View。
/** * 计算显示9 张图片每一张图片的margin * @return [marginLeft, marginRight] */ public static int[] getCircleImageMargin(int imageSize,int count) { //计算坐标 int x, y; switch (count) { case 0: case 1: case 2: y = 0; break; case 3: case 4: case 5: y = 1; break; default: y = 2; } switch (count) { case 0: case 3: case 6: x = 0; break; case 1: case 4: case 7: x = 1; break; default: x = 2; } int left = (imageSize + DimenUtils.dip2px(App.sInstance, 2)) * x; int top = (imageSize + DimenUtils.dip2px(App.sInstance, 2)) * y; return new int[]{left, top}; }
麻烦大哥写个能用的,wtf!
... 不知道该怎么吐槽了 给您劈个叉吧