因删除了gitee图床,图片不能正常显示,详细查看github源码
1. 概述
解决Gradle下载不了CityPicker依赖的问题
citypicker源码github地址:crazyandcoder/citypicker
2. 实现效果
3. 实现方法
(1)环境配置
- 在setting.gradle文件中配置jitpack的maven地址
maven {url 'https://jitpack.io'}
- 选择官方最新版本的依赖
implementation 'com.github.crazyandcoder:citypicker:6.0.2'
在app的build.gradle文件的dependencies部分引入
- 在AndroidManifest.xml文件中添加tools替换掉citypicker中冲突的部分
xmlns:tools="http://schemas.android.com/tools"
tools:replace="android:theme"
(2)代码实现
新版本的citypicker与低版本的用法有些许差别,因为在类名和方法名上有所不同
layout部分
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/item_city"
android:layout_width="match_parent"
android:layout_height="45dp"
android:gravity="center"
android:text="请选择地址"
android:textSize="18sp"
android:textStyle="bold"/>
</LinearLayout>
java部分
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import com.lljjcoder.Interface.OnCityItemClickListener;
import com.lljjcoder.bean.CityBean;
import com.lljjcoder.bean.DistrictBean;
import com.lljjcoder.bean.ProvinceBean;
import com.lljjcoder.citywheel.CityConfig;
import com.lljjcoder.style.citypickerview.CityPickerView;
public class MainActivity extends AppCompatActivity {
// 创建CityPicker对象,有别于低版本的CityPicker
CityPickerView mPicker=new CityPickerView();
private TextView cityText;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mPicker.init(this); // 预先加载全部数据,必须执行
cityText=findViewById(R.id.item_city); // 找到页面上的item_city组件
cityText.setOnClickListener(new View.OnClickListener() { // 设置TextView组件的点击监听
@Override
public void onClick(View view) {
initCityPicker(); // 初始化CityPicker
mPicker.showCityPicker(); // 展示CityPicker
}
});
}
public void initCityPicker() {
CityConfig cityConfig = new CityConfig.Builder().build(); // 采用默认配置,详细属性配置在下面
mPicker.setConfig(cityConfig); // CityPicker设置配置属性
mPicker.setOnCityItemClickListener(new OnCityItemClickListener() { // CityPicker设置点击事件监听
// 成功选择信息后执行该方法
@Override
public void onSelected(ProvinceBean province, CityBean city, DistrictBean district) {
// 省份province,城市city,地区district
// 给TextView组件添加所选择的地址信息
cityText.setText(String.format("%s %s %s", province, city, district));
}
// 点取消时执行该方法
@Override
public void onCancel() {}
});
}
}
(3)补充部分
CityConfig详细属性信息,可以自定义
CityConfig cityConfig = new CityConfig.Builder()
.title("选择城市")//标题
.titleTextSize(18)//标题文字大小
.titleTextColor("#585858")//标题文字颜 色
.titleBackgroundColor("#E9E9E9")//标题栏背景色
.confirTextColor("#585858")//确认按钮文字颜色
.confirmText("ok")//确认按钮文字
.confirmTextSize(16)//确认按钮文字大小
.cancelTextColor("#585858")//取消按钮文字颜色
.cancelText("cancel")//取消按钮文字
.cancelTextSize(16)//取消按钮文字大小
.setCityWheelType(CityConfig.WheelType.PRO_CITY_DIS)//显示类,只显示省份一级,显示省市两级还是显示省市区三级
.showBackground(true)//是否显示半透明背景
.visibleItemsCount(7)//显示item的数量
.province("浙江省")//默认显示的省份
.city("杭州市")//默认显示省份下面的城市
.district("滨江区")//默认显示省市下面的区县数据
.provinceCyclic(true)//省份滚轮是否可以循环滚动
.cityCyclic(true)//城市滚轮是否可以循环滚动
.districtCyclic(true)//区县滚轮是否循环滚动
.setCustomItemTextViewId(R.id.item_city)//自定义item布局里面的textViewid
.drawShadows(false)//滚轮不显示模糊效果
.setLineColor("#03a9f4")//中间横线的颜色
.setLineHeigh(5)//中间横线的高度
.setShowGAT(true)//是否显示港澳台数据,默认不显示
.build();