因刪除了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();