我想创建一个自定义的Android容器,可以轻松地添加和删除对象。该容器应将对象放置在六边形内。对象放置的顺序非常重要,并在下面的图像中显示。此适配器中的对象是可点击的ImageViews(圆形)。是否有可能为Android制作这样的东西?
我知道有类似的问题,但都与我想要实现的不太相似。
可能越来越多的人在寻找像我正在尝试创建的那种更自定义的容器。而不是其他应用程序中的标准容器,如GridsView、ListView等。
我已经完成的工作
我决定使用RecyclerView和自定义的RecyclerView.LayoutManagers。同时编写算法来定义ImageView的位置。不幸的是,我不熟悉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;
}