一个仿大众点评、美团的城市选择器,使用如同Rx一样优雅,并且UI和城市数据可以自定义
一个仿大众点评的城市快速选择器, 最少只需 一行 代码即可启动城市选择器, 支持页面样式修改,多元化自定义
V0.4.6
V0.4.5
V0.4.3
V0.4.0
V0.3.3
V0.3.1
V0.3.0
V0.2.2
V0.1.0
<dependency>
<groupId>com.desmond</groupId>
<artifactId>CityPicker</artifactId>
<version>xxx</version>
<type>pom</type>
</dependency>
compile 'com.desmond:CityPicker:xxx'
对于Android 6.0需要配置动态权限
Manifest.permission.WRITE_EXTERNAL_STORAGE
启动城市选择页面及相关自定义配置
CityPicker.with(getContext())
//是否需要显示当前城市,如果为false那么就隐藏当前城市,并且调用setGpsCityByBaidu()或setGpsCityByAMap()都不会生效,非必选项,默认为true
.setUseGpsCity(true)
//自定义热门城市,输入数据库中的城市id(_id),非必选项,默认为数据库中的热门城市
.setHotCitiesId("2", "9", "18", "11", "66", "1", "80", "49", "100");
//设置最多显示历史点击城市数量,0为不显示历史城市
.setMaxHistory(6);
// 自定义城市基础数据列表,必须放在项目的assets文件夹下,并且表结构同citypicker项目下的assets中的数据库表结构相同
// 该方法当前为beta版本,不推荐使用
.setCustomDBName("xx.sqlite");
// 设置标题栏背景,非必选项
.setTitleBarDrawable(...);
// 设置返回按钮图片,非必选项
.setTitleBarBackBtnDrawable(...);
// 设置搜索框背景,非必选项
.setSearchViewDrawable(...);
// 设置搜索框字体颜色,非必选项
.setSearchViewTextColor(...);
// 设置搜索框字体大小,非必选项
.setSearchViewTextSize(...);
// 设置右边检索栏字体颜色,非必选项
.setIndexBarTextColor(...);
// 设置右边检索栏字体大小,非必选项
.setIndexBarTextSize(...);
// 是否使用沉浸式状态栏,默认使用,非必选项
.setUseImmerseBar(true);
// 回调
.setOnCityPickerCallBack(new IOnCityPickerCheckedCallBack()
{
@Override
public void onCityPickerChecked(BaseCity baseCity)
{
//获取选择城市编码
baseCity.getCodeByBaidu(); //baseCity.getCodeByAMap();//高德code
//获取选择城市名称
baseCity.getCityName();
// 获取选择城市拼音全拼
baseCity.getCityPinYin();
//获取选择城市拼音首字母
baseCity.getCityPYFirst();
}
})
.open();
获取到位置信息后调用该静态方法可以在页面打开后设置当前城市 百度定位或高德定位需要自行配置,在这个库中没有集成任何与定位相关的模块
//使用百度定位
CityPicker.setGpsCityByBaidu("南京市","315");
//高德定位
CityPicker.setGpsCityByAMap("南京市","025");
基础数据库名称定义为:city.sqlite。在引入的工程中千万不可创建同名的数据库,否则可能会发生异常!
自定义基础数据库必须重写city.sqlite
中的tb_city
和 tb_history
, 允许增加字段,但不可删除或修改字段
项目中使用了如下三方库,如与你项目中的库冲突,请及时排除
def supportLibraryVersion = '24.2.1'
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
testCompile 'junit:junit:4.12'
compile "com.android.support:support-v4:$supportLibraryVersion"
compile "com.android.support:appcompat-v7:$supportLibraryVersion"
compile "com.android.support:recyclerview-v7:$supportLibraryVersion"
compile "com.android.support:design:$supportLibraryVersion"
compile "com.android.support:gridlayout-v7:$supportLibraryVersion"
compile 'com.gjiazhe:wavesidebar:1.3'
compile 'com.squareup.sqlbrite:sqlbrite:1.1.1'
compile 'io.reactivex:rxjava:1.2.0'
//rx系列
compile 'io.reactivex:rxandroid:1.2.1'
compile 'org.greenrobot:eventbus:3.0.0'
}
排除示例:
compile ('com.desmond:CityPicker:0.3.0' ){
exclude group: 'com.android.support'
exclude group:'com.squareup.sqlbrite'
exclude group:'io.reactivex'
exclude group:'io.rxandroid'
exclude group:'org.greenrobot'
}
手机扫描下方二维码下载demo尝鲜
QQ 350248823 添加时注明github-citypicker 欢迎issues,作者看到后会第一时间回复