效果图:
用到4个类(copy)
1 布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity" >
<com.baidu.stellarmap.lib.StellarMap
android:id="@+id/stleeMap"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
* 步骤:
* 准备:复制4个类
* 1 布局+获取StellarMap对象
* 2 设置adapter
* 3 设置StellarMap参数
* 1 布局+获取StellarMap对象
//1获取StellarMap对象
stellarMap = (StellarMap) findViewById(R.id.stleeMap);
* 2 设置adapter
//2 设置adapter
MyAdapter adapter = new MyAdapter();
stellarMap.setAdapter(adapter);
class MyAdapter implements Adapter {// 注意:Adapter是stellMap包下的,是interface
// 共多少组数据
@Override
public int getGroupCount() {
return 3;
}
// 每一组有多少条数据
@Override
public int getCount(int group) {
return 11;
}
@Override
public View getView(int group, int position, View convertView) {
TextView tv = new TextView(context);
tv.setText("item" + position);
// 1 设置字体大小
Random random = new Random();
int textSize = random.nextInt(8) + 15;
tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP, textSize);
// 2 设置字体颜色
int red = random.nextInt(150) + 50;
int green = random.nextInt(150) + 50;
int blue = random.nextInt(150) + 50;
int textColor = Color.rgb(red, green, blue);
tv.setTextColor(textColor);
return tv;
}
// 没什么作用
@Override
public int getNextGroupOnPan(int group, float degree) {
return 0;
}
// 下一个页面要显示的数据
@Override
public int getNextGroupOnZoom(int group, boolean isZoomIn) {
return (group + 1) % getGroupCount();// 确保循环显示
}
}
3 设置StellarMap参数
若想第一页就显示数据,那么方法setGroup(0, true);必须放在setAdapter(adapter)后面,其他方法顺序无所谓;
public void initStellarMap() {
stellarMap.setGroup(0, true);
stellarMap.setInnerPadding(padding, padding, padding, padding);// 设置textView的内边距
stellarMap.setRegularity(15, 15);
}
源码:http://download.youkuaiyun.com/detail/ss1168805219/9485126