使用
创建StellarMap对象
//创建StellarMap对象
stellarMap = new StellarMap(getContext());
//里面的文字是随机出现的
//设置内边距--//里面的文字对于布局的边缘还是有距离
int padding = getResources().getDimensionPixelSize(R.dimen.dp15);//里面的文字对于布局的边缘还是有距离
int bottomPadding = padding + getResources().getDimensionPixelSize(R.dimen.dp50);
stellarMap.setInnerPadding(padding, padding, padding, bottomPadding);
return stellarMap;
//在dimens.xml文件中建一个dimen--<dimen name="dp50">50dp</dimen>
//直接获取dimens文件的dimen的dp资源,直接返回像素值(根据当前屏幕的分辨率)
//getResources().getDimensionPixelSize(R.dimen.dp15);
MyAdapter实现stellarMap的内部接口
//实现自己的内部接口StellarMap.Adapter
class MyAdapter implements StellarMap.Adapter {
//getGroupCount获取组的数量
/**
* 获取组的数量
*
* @return
*/
@Override
public int getGroupCount() {
return 3;
}
//getCount返回每组有多少个item
/**
* 返回每组多少个
*
* @param group
* @return
*/
@Override
public int getCount(int group) {
return 11;
}
//getView返回每个组的每个item 的对象
/**
* 返回每个组的view对象
*
* @param group 当前是第几组
* @param position 表示组中的position,并不是list中的position
* @param convertView
* @return
*/
@Override
public View getView(int group, int position, View convertView) {
return textView;
}
//getNextGroupOnPan—没用
/**
* 注意:此方法并没有什么乱用,因为从来没有用到
*
* @param group
* @param degree
* @return
*/
@Override
public int getNextGroupOnPan(int group, float degree) {
return 0;
}
//getNextGroupOnZoom返回的是下一组要加载的数据
/**
* 当执行完缩放动画后,下一组加载哪一组的数据
*
* @param group 当前是第几组
* @param isZoomIn
* @return 返回的是下一组要加载的数据
*/
@Override
public int getNextGroupOnZoom(int group, boolean isZoomIn) {
//0->1->2->0
//返回下一组加载哪一组的数据
return (group + 1) % getGroupCount();
}
}
设置布局
@Override
public View getView ( int group, int position, View convertView){
final TextView textView = new TextView(getContext());
//list:33个数据 分成3组 每组11个数据
//计算出每组需要展现的数据索引
int listPosi = group * getCount(group) + position;
//设置text
textView.setText(list.get(listPosi));
Random random = new Random();
//1.设置随机的字体大小--包左不包右
final int textSize = random.nextInt(14) + 12;//12-24
textView.setTextSize(textSize);
//2.上色儿,设置随机颜色
textView.setTextColor(ColorUtil.randomBeautifulColor());
//3.设置点击事件
textView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
ToastUtil.showToast(getContext(), textView.getText().toString());
}
});
return textView;
}
随机生成颜色工具类
public class ColorUtil {
/**
* 生成漂亮的颜色
* @return
*/
public static int randomBeautifulColor() {
//值小一点--这样随机生成的颜色尽量都比较暗(因为在较亮的背景上--亮色看不明显)
Random random = new Random();
int red = random.nextInt(150);
int green = random.nextInt(150);
int blue = random.nextInt(150);
return Color.rgb(red, green, blue);
}
}