NineGridLayout icon indicating copy to clipboard operation
NineGridLayout copied to clipboard

把问题弄简单才是人们所追求的

Open VectorWen opened this issue 8 years ago • 2 comments

继承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};
    }

VectorWen avatar Apr 20 '17 01:04 VectorWen

继承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!

fengming-li avatar Dec 21 '18 08:12 fengming-li

... 不知道该怎么吐槽了 给您劈个叉吧

EmMper avatar Jan 18 '19 03:01 EmMper