zoukankan      html  css  js  c++  java
  • 弹窗多内容,灵活布局计算方式总结

    之前的礼物弹窗内容个数少,因此老代码的frame只能针对两页,判断条件也是常量,因此无法灵活增加,不支持更多页的扩展。
    最近的需求是扩充礼物数量,在修改时发现了当时的问题,意识到这种可能灵活变更的内容未来会有更多调整。
    所以这次直接将所有常量变更为表达式方式,做成支持N多页面的灵活布局方式。
     
    问题本不复杂,在计算时发现里该类问题的计算思路是通用的,因此记录一下。
    举例:
    当前弹窗为,容器大小固定,单页内容:2行 4列 支持2页
    计划修改为:scrollView作为容器,容器大小灵活,行列数量灵活,支持页数灵活
    布局顺序为:
    0    1    2    3    8      9      10    11
    4    5    6    7    12    13    14    
     
     
    对某一个礼物来说,size固定,需要调整只有origin。因此如何计算X、Y值是关键。
     
    举例两页,序号分别为:
    0    1    2    3    8    9    10    11
    4    5    6    7    12
     
    首先分析X的计算:
    与行状态无关,与列数有关,与间距有关,与页数有关
     
    间距为固定值,无需多余考虑
    要去消减行数的影响,保留列数
    对列数取余
    0    1    2    3    0    1    2    3
    0    1    2    3    0    
    现在还无法表现页数对X的影响,需要再加一个页数的值
     
    首页X的计算为:ScreenWidth *(i/onePageAmount) + widthSpace + i%_column * ButtonWidth;
     
    首先分析Y的计算:
    与行状态有关,与列数无关,与间距无关,与页面无关
    除以列数
    0    0    0    0    2    2    2    2
    1    1    1    1    3
    消减页数的影响,取余行数
    0    0    0    0    0    0    0    0
    1    1    1    1    1
     
    首页Y的计算为:i/_column % _row * ButtonHeight
     
  • 相关阅读:
    poj 2757 : 最长上升子序列(JAVA)
    POJ 2760: 数字三角形
    poj 1664:放苹果
    Poj 2756:二叉树
    poj机上的JAVA那些事儿
    浅谈HASH算法与CSDN密码泄漏事件
    如何防范密码被破解
    [转载自百度文库]数组拷贝(System.arraycopy,深度拷贝)--数组
    Java数学计算
    fzu Problem 1396 Large Caclulating Work
  • 原文地址:https://www.cnblogs.com/huaida/p/11270884.html
Copyright © 2011-2022 走看看