Min*_*nis 5 java layout containers android view
我想创建一个自定义的android容器.我可以轻松添加和删除对象.容器应将对象放在六边形内.对象放置的顺序非常重要,如下图所示.此适配器中的对象是可单击的ImageViews(循环).甚至可以为Android制作这样的东西?
我知道有类似的问题,比如我的,但是我甚至没有达到我想达到的目标.
可能会有越来越多的人在寻找更多自定义容器,就像我想要的那样.不像其他应用程序那样标准:GridsView,ListView等.
我已经做了什么
我决定使用RecyclerView和自定义RecyclerView.LayoutManagers.还要编写一个算法来定义ImageViews的位置.不幸的是,我不熟悉LayoutManager,不知道如何使用它定义界面.
这是算法:
List<Object> list;
int nuberOfElements = list.size();
int layerNr = 0;
int radius = 0;
int angle = 0;
//handle first middel element postion(0,0)
nuberOfPlaceElements --;
radius += r;
for(layerNr=1; nuberOfElements > 0; layerNr ++){
for(int elementInLayer = 0; elementInLayer < layerNr * 6; elemnetInLayer ++){
//layerNr *6 -> define how many elements in layer
angle += 360/layerNr * 6
//handle the postion of elemnts in Layer
nuberOfElements--;
}
radius += r;
angle = 0;
}
Run Code Online (Sandbox Code Playgroud)
最好的解决方案是创建自定义布局(http://lucasr.org/2014/05/12/custom-layouts-on-android/),但这也是最昂贵的方法(实施时间成本)...
或者,您可以创建自定义视图并直接在那里绘制图像(http://developer.android.com/training/custom-views/custom-drawing.html)
您想了解的有关十六进制地图的所有信息:http://www.redblobgames.com/grids/hexagons/
为什么布局比自定义绘图视图更好?它可以打包在库中并用于任何其他应用程序,而自定义绘图视图则与应用程序绑定......
归档时间: |
|
查看次数: |
636 次 |
最近记录: |