自定义View,可缩放、可平移、可点击的中国地图,有中国地图的全部省份,具备每个省份的点击接口
自定义View,可缩放、可平移、可点击的中国地图,有中国地图的全部省份,具备每个省份的点击接口
ChinaMapView:这是一个可拖拽,可点击,可手势放大的自定义中国地图组件,使用简单,具备一个自定义View应有的基本素质
| 常规使用 | 下拉刷新及其他滑动冲突 |
|---|---|
| 展示省份名字(1.0.2新增支持) | 只允许点击,不允许缩放和拖动(1.0.4新增支持) |
|---|---|
| 属性(均包含set、get方法) | 类型 | 作用 |
|---|---|---|
| provinceslist | List | 包含所有的省份model |
| isShowName | boolean | 设置是否展示省份名字 |
| 属性(均包含set、get方法) | 类型 | 作用 |
|---|---|---|
| color | int | 省份填充的颜色 |
| normalBorderColor | int | 省份未选中状态下的边框颜色 |
| selectBorderColor | int | 省份未选中状态下的边框颜色 |
| nameColor | int | 省份名字颜色,每个省份名字的颜色可以不一致 |
| 方法 | 参数 | 作用 |
|---|---|---|
| setEnableTouch | boolean | 设置是否可以消费事件(默认为true) |
| setEnableScroll | boolean | 设置是否可以缩放和拖动(默认为true) |
| setScaleMin | int | 设置缩放的最小倍数,最终结果>=0 |
| setScaleMax | int | 设置缩放的最大倍数,最终结果>=1 |
| getChinaMapModel | ChinaMapModel | 返回ChinaMapModel对象,用于之后的修改刷新view的展示 |
| setOnProvinceClickLisener | ChinaMapView.onProvinceClickLisener | 省份点击选中接口 |
| setOnPromiseParentTouchListener | ChinaMapView.onPromiseParentTouchListener | 通知外界是否允许chinamapview之上的view拦截事件 |
| notifyDataChanged | void | 修改ChinaMapModel对象后,刷新View |
Step 1. Add it in your root build.gradle at the end of repositories:
allprojects {
repositories {
...
maven { url 'https://jitpack.io' }
}
}
Step 2. Add the dependency
dependencies {
implementation 'com.github.NoEndToLF:ChinaMapView:1.1.0'
}
chinaMapModel = map.getChinaMapModel();
map.setScaleMin(1);
map.setScaleMax(3);
for (ProvinceModel provinceModel:chinaMapModel.getProvinceslist()){
provinceModel.setColor(color);
}
map.notifyDataChanged();
for (ProvinceModel provinceModel:chinaMapModel.getProvinceslist()){
provinceModel.setNormalBordercolor(color);
}
map.notifyDataChanged();
for (ProvinceModel provinceModel:chinaMapModel.getProvinceslist()){
provinceModel.setSelectBordercolor(color);
}
map.notifyDataChanged();
for (ProvinceModel provinceModel:chinaMapModel.getProvincesList()){
provinceModel.setNameColor(color);
}
map.notifyDataChanged();
map.setOnProvinceClickLisener(new ChinaMapView.onProvinceClickLisener() {
@Override
public void onSelectProvince(String provinceName) {
tvName.setText(provinceName);
}
});
chinamapView.setOnPromiseParentTouchListener(new ChinaMapView.onPromiseParentTouchListener() {
@Override
public void onPromiseTouch(boolean promise) {
swipe.setEnabled(promise);
}
});
…
…
No open issues yet, or sync has not completed.