最近在做app登錄的時候,因為需要支持國外手機號註冊和登錄,所以就涉及到國際電話區號的選擇。在github上面找了一下,國家名稱基本都是只有英文版本,而手動的去把中文一個個加上實在是一件費時費力的事情,所以就寫了一段簡單的java代碼,抓取了某快遞網站的數據轉換成json格式,以下是處理後的數據 然 ...
最近在做app登錄的時候,因為需要支持國外手機號註冊和登錄,所以就涉及到國際電話區號的選擇。在github上面找了一下,國家名稱基本都是只有英文版本,而手動的去把中文一個個加上實在是一件費時費力的事情,所以就寫了一段簡單的java代碼,抓取了某快遞網站的數據轉換成json格式,以下是處理後的數據
[ { "en": "Angola", "zh": "安哥拉", "locale": "AO", "code": 244 }, { "en": "Afghanistan", "zh": "阿富汗", "locale": "AF", "code": 93 }, { "en": "Albania", "zh": "阿爾巴尼亞", "locale": "AL", "code": 355 }, { "en": "Algeria", "zh": "阿爾及利亞", "locale": "DZ", "code": 213 }, { "en": "Andorra", "zh": "安道爾共和國", "locale": "AD", "code": 376 }, { "en": "Anguilla", "zh": "安圭拉島", "locale": "AI", "code": 1264 }, { "en": "Antigua and Barbuda", "zh": "安地卡及巴布達", "locale": "AG", "code": 1268 }, { "en": "Argentina", "zh": "阿根廷", "locale": "AR", "code": 54 }, { "en": "Armenia", "zh": "亞美尼亞", "locale": "AM", "code": 374 }, { "en": "Ascension", "zh": "阿森松", "locale": " ", "code": 247 }, { "en": "Australia", "zh": "澳大利亞", "locale": "AU", "code": 61 }, { "en": "Austria", "zh": "奧地利", "locale": "AT", "code": 43 }, { "en": "Azerbaijan", "zh": "亞塞拜然", "locale": "AZ", "code": 994 }, { "en": "Bahamas", "zh": "巴哈馬", "locale": "BS", "code": 1242 }, { "en": "Bahrain", "zh": "巴林", "locale": "BH", "code": 973 }, { "en": "Bangladesh", "zh": "孟加拉國", "locale": "BD", "code": 880 }, { "en": "Barbados", "zh": "巴貝多", "locale": "BB", "code": 1246 }, { "en": "Belarus", "zh": "白俄羅斯", "locale": "BY", "code": 375 }, { "en": "Belgium", "zh": "比利時", "locale": "BE", "code": 32 }, { "en": "Belize", "zh": "貝里斯", "locale": "BZ", "code": 501 }, { "en": "Benin", "zh": "貝南", "locale": "BJ", "code": 229 }, { "en": "Bermuda Is.", "zh": "百慕大群島", "locale": "BM", "code": 1441 }, { "en": "Bolivia", "zh": "玻利維亞", "locale": "BO", "code": 591 }, { "en": "Botswana", "zh": "波札那", "locale": "BW", "code": 267 }, { "en": "Brazil", "zh": "巴西", "locale": "BR", "code": 55 }, { "en": "Brunei", "zh": "汶萊", "locale": "BN", "code": 673 }, { "en": "Bulgaria", "zh": "保加利亞", "locale": "BG", "code": 359 }, { "en": "Burkina-faso", "zh": "布吉納法索", "locale": "BF", "code": 226 }, { "en": "Burma", "zh": "緬甸", "locale": "MM", "code": 95 }, { "en": "Burundi", "zh": "蒲隆地", "locale": "BI", "code": 257 }, { "en": "Cameroon", "zh": "喀麥隆", "locale": "CM", "code": 237 }, { "en": "Canada", "zh": "加拿大", "locale": "CA", "code": 1 }, { "en": "Cayman Is.", "zh": "開曼群島", "locale": " ", "code": 1345 }, { "en": "Central African Republic", "zh": "中非共和國", "locale": "CF", "code": 236 }, { "en": "Chad", "zh": "查德", "locale": "TD", "code": 235 }, { "en": "Chile", "zh": "智利", "locale": "CL", "code": 56 }, { "en": "China", "zh": "中國", "locale": "CN", "code": 86 }, { "en": "Colombia", "zh": "哥倫比亞", "locale": "CO", "code": 57 }, { "en": "Congo", "zh": "剛果", "locale": "CG", "code": 242 }, { "en": "Cook Is.", "zh": "庫克群島", "locale": "CK", "code": 682 }, { "en": "Costa Rica", "zh": "哥斯大黎加", "locale": "CR", "code": 506 }, { "en": "Cuba", "zh": "古巴", "locale": "CU", "code": 53 }, { "en": "Cyprus", "zh": "塞普勒斯", "locale": "CY", "code": 357 }, { "en": "Czech Republic", "zh": "捷克", "locale": "CZ", "code": 420 }, { "en": "Denmark", "zh": "丹麥", "locale": "DK", "code": 45 }, { "en": "Djibouti", "zh": "吉布地", "locale": "DJ", "code": 253 }, { "en": "Dominica Rep.", "zh": "多明尼加共和國", "locale": "DO", "code": 1890 }, { "en": "Ecuador", "zh": "厄瓜多", "locale": "EC", "code": 593 }, { "en": "Egypt", "zh": "埃及", "locale": "EG", "code": 20 }, { "en": "EI Salvador", "zh": "薩爾瓦多", "locale": "SV", "code": 503 }, { "en": "Estonia", "zh": "愛沙尼亞", "locale": "EE", "code": 372 }, { "en": "Ethiopia", "zh": "衣索比亞", "locale": "ET", "code": 251 }, { "en": "Fiji", "zh": "斐濟", "locale": "FJ", "code": 679 }, { "en": "Finland", "zh": "芬蘭", "locale": "FI", "code": 358 }, { "en": "France", "zh": "法國", "locale": "FR", "code": 33 }, { "en": "French Guiana", "zh": "法屬蓋亞那", "locale": "GF", "code": 594 }, { "en": "Gabon", "zh": "加彭", "locale": "GA", "code": 241 }, { "en": "Gambia", "zh": "甘比亞", "locale": "GM", "code": 220 }, { "en": "Georgia", "zh": "喬治亞", "locale": "GE", "code": 995 }, { "en": "Germany", "zh": "德國", "locale": "DE", "code": 49 }, { "en": "Ghana", "zh": "迦納", "locale": "GH", "code": 233 }, { "en": "Gibraltar", "zh": "直布羅陀", "locale": "GI", "code": 350 }, { "en": "Greece", "zh": "希臘", "locale": "GR", "code": 30 }, { "en": "Grenada", "zh": "格瑞那達", "locale": "GD", "code": 1809 }, { "en": "Guam", "zh": "關島", "locale": "GU", "code": 1671 }, { "en": "Guatemala", "zh": "瓜地馬拉", "locale": "GT", "code": 502 }, { "en": "Guinea", "zh": "幾內亞", "locale": "GN", "code": 224 }, { "en": "Guyana", "zh": "蓋亞那", "locale": "GY", "code": 592 }, { "en": "Haiti", "zh": "海地", "locale": "HT", "code": 509 }, { "en": "Honduras", "zh": "宏都拉斯", "locale": "HN", "code": 504 }, { "en": "Hongkong", "zh": "香港", "locale": "HK", "code": 852 }, { "en": "Hungary", "zh": "匈牙利", "locale": "HU", "code": 36 }, { "en": "Iceland", "zh": "冰島", "locale": "IS", "code": 354 }, { "en": "India", "zh": "印度", "locale": "IN", "code": 91 }, { "en": "Indonesia", "zh": "印度尼西亞", "locale": "ID", "code": 62 }, { "en": "Iran", "zh": "伊朗", "locale": "IR", "code": 98 }, { "en": "Iraq", "zh": "伊拉克", "locale": "IQ", "code": 964 }, { "en": "Ireland", "zh": "愛爾蘭", "locale": "IE", "code": 353 }, { "en": "Israel", "zh": "以色列", "locale": "IL", "code": 972 }, { "en": "Italy", "zh": "義大利", "locale": "IT", "code": 39 }, { "en": "Ivory Coast", "zh": "象牙海岸", "locale": " ", "code": 225 }, { "en": "Jamaica", "zh": "牙買加", "locale": "JM", "code": 1876 }, { "en": "Japan", "zh": "日本", "locale": "JP", "code": 81 }, { "en": "Jordan", "zh": "約旦", "locale": "JO", "code": 962 }, { "en": "Kampuchea (Cambodia )", "zh": "柬埔寨", "locale": "KH", "code": 855 }, { "en": "Kazakstan", "zh": "哈薩克", "locale": "KZ", "code": 327 }, { "en": "Kenya", "zh": "肯亞", "locale": "KE", "code": 254 }, { "en": "Korea", "zh": "南韓", "locale": "KR", "code": 82 }, { "en": "Kuwait", "zh": "科威特", "locale": "KW", "code": 965 }, { "en": "Kyrgyzstan", "zh": "吉爾吉斯坦", "locale": "KG", "code": 331 }, { "en": "Laos", "zh": "寮國", "locale": "LA", "code": 856 }, { "en": "Latvia", "zh": "拉脫維亞", "locale": "LV", "code": 371 }, { "en": "Lebanon", "zh": "黎巴嫩", "locale": "LB", "code": 961 }, { "en": "Lesotho", "zh": "賴索托", "locale": "LS", "code": 266 }, { "en": "Liberia", "zh": "賴比瑞亞", "locale": "LR", "code": 231 }, { "en": "Libya", "zh": "利比亞", "locale": "LY", "code": 218 }, { "en": "Liechtenstein", "zh": "列支敦斯登", "locale": "LI", "code": 423 }, { "en": "Lithuania", "zh": "立陶宛", "locale": "LT", "code": 370 }, { "en": "Luxembourg", "zh": "盧森堡", "locale": "LU", "code": 352 }, { "en": "Macao", "zh": "澳門", "locale": "MO", "code": 853 }, { "en": "Madagascar", "zh": "馬達加斯加", "locale": "MG", "code": 261 }, { "en": "Malawi", "zh": "馬拉維", "locale": "MW", "code": 265 }, { "en": "Malaysia", "zh": "馬來西亞", "locale": "MY", "code": 60 }, { "en": "Maldives", "zh": "馬爾地夫", "locale": "MV", "code": 960 }, { "en": "Mali", "zh": "馬利", "locale": "ML", "code": 223 }, { "en": "Malta", "zh": "馬爾他", "locale": "MT", "code": 356 }, { "en": "Mariana Is", "zh": "馬利亞那群島", "locale": " ", "code": 1670 }, { "en": "Martinique", "zh": "馬提尼克", "locale": " ", "code": 596 }, { "en": "Mauritius", "zh": "模里西斯", "locale": "MU", "code": 230 }, { "en": "Mexico", "zh": "墨西哥", "locale": "MX", "code": 52 }, { "en": "Moldova, Republic of", "zh": "摩爾多瓦", "locale": "MD", "code": 373 }, { "en": "Monaco", "zh": "摩納哥", "locale": "MC", "code": 377 }, { "en": "Mongolia", "zh": "蒙古", "locale": "MN", "code": 976 }, { "en": "Montserrat Is", "zh": "蒙特塞拉特島", "locale": "MS", "code": 1664 }, { "en": "Morocco", "zh": "摩洛哥", "locale": "MA", "code": 212 }, { "en": "Mozambique", "zh": "莫三比克", "locale": "MZ", "code": 258 }, { "en": "Namibia", "zh": "納米比亞", "locale": "NA", "code": 264 }, { "en": "Nauru", "zh": "諾魯", "locale": "NR", "code": 674 }, { "en": "Nepal", "zh": "尼泊爾", "locale": "NP", "code": 977 }, { "en": "Netheriands Antilles", "zh": "荷屬安的列斯", "locale": " ", "code": 599 }, { "en": "Netherlands", "zh": "荷蘭", "locale": "NL", "code": 31 }, { "en": "New Zealand", "zh": "紐西蘭", "locale": "NZ", "code": 64 }, { "en": "Nicaragua", "zh": "尼加拉瓜", "locale": "NI", "code": 505 }, { "en": "Niger", "zh": "尼日", "locale": "NE", "code": 227 }, { "en": "Nigeria", "zh": "奈及利亞", "locale": "NG", "code": 234 }, { "en": "North Korea", "zh": "北韓", "locale": "KP", "code": 850 }, { "en": "Norway", "zh": "挪威", "locale": "NO", "code": 47 }, { "en": "Oman", "zh": "阿曼", "locale": "OM", "code": 968 }, { "en": "Pakistan", "zh": "巴基斯坦", "locale": "PK", "code": 92 }, { "en": "Panama", "zh": "巴拿馬", "locale": "PA", "code": 507 }, { "en": "Papua New Cuinea", "zh": "巴布亞紐幾內亞", "locale": "PG", "code": 675 }, { "en": "Paraguay", "zh": "巴拉圭", "locale": "PY", "code": 595 }, { "en": "Peru", "zh": "秘魯", "locale": "PE", "code": 51 }, { "en": "Philippines", "zh": "菲律賓", "locale": "PH", "code": 63 }, { "en": "Poland", "zh": "波蘭", "locale": "PL", "code": 48 }, { "en": "French Polynesia", "zh": "法屬玻利尼西亞", "locale": "PF", "code": 689 }, { "en": "Portugal", "zh": "葡萄牙", "locale": "PT", "code": 351 }, { "en": "Puerto Rico", "zh": "波多黎各", "locale": "PR", "code": 1787 }, { "en": "Qatar", "zh": "卡達", "locale": "QA", "code": 974 }, { "en": "Reunion", "zh": "留尼旺", "locale": " ", "code": 262 }, { "en": "Romania", "zh": "羅馬尼亞", "locale": "RO", "code": 40 }, { "en": "Russia", "zh": "俄羅斯", "locale": "RU", "code": 7 }, { "en": "Saint Lueia", "zh": "聖露西亞", "locale": "LC", "code": 1758 }, { "en": "Saint Vincent", "zh": "聖文森特島", "locale": "VC", "code": 1784 }, { "en": "Samoa Eastern", "zh": "東薩摩亞(美)", "locale": " ", "code": 684 }, { "en": "Samoa Western", "zh": "西薩摩亞", "locale": " ", "code": 685 }, { "en": "San Marino", "zh": "聖馬利諾", "locale": "SM", "code": 378 }, { "en": "Sao Tome and Principe", "zh": "聖多美和普林西比", "locale": "ST", "code": 239 }, { "en": "Saudi Arabia", "zh": "沙烏地阿拉伯", "locale": "SA", "code": 966 }, { "en": "Senegal", "zh": "塞內加爾", "locale": "SN", "code": 221 }, { "en": "Seychelles", "zh": "塞席爾", "locale": "SC", "code": 248 }, { "en": "Sierra Leone", "zh": "獅子山", "locale": "SL", "code": 232 }, { "en": "Singapore", "zh": "新加坡", "locale": "SG", "code": 65 }, { "en": "Slovakia", "zh": "斯洛伐克", "locale": "SK", "code": 421 }, { "en": "Slovenia", "zh": "斯洛維尼亞", "locale": "SI", "code": 386 }, { "en": "Solomon Is", "zh": "索羅門群島", "locale": "SB", "code": 677 }, { "en": "Somali", "zh": "索馬利亞", "locale": "SO", "code": 252 }, { "en": "South Africa", "zh": "南非", "locale": "ZA", "code": 27 }, { "en": "Spain", "zh": "西班牙", "locale": "ES", "code": 34 }, { "en": "Sri Lanka", "zh": "斯裡蘭卡", "locale": "LK", "code": 94 }, { "en": "St.Lucia", "zh": "聖露西亞", "locale": "LC", "code": 1758 }, { "en": "St.Vincent", "zh": "聖文森特", "locale": "VC", "code": 1784 }, { "en": "Sudan", "zh": "蘇丹", "locale": "SD", "code": 249 }, { "en": "Suriname", "zh": "蘇利南", "locale": "SR", "code": 597 }, { "en": "Swaziland", "zh": "史瓦濟蘭", "locale": "SZ", "code": 268 }, { "en": "Sweden", "zh": "瑞典", "locale": "SE", "code": 46 }, { "en": "Switzerland", "zh": "瑞士", "locale": "CH", "code": 41 }, { "en": "Syria", "zh": "敘利亞", "locale": "SY", "code": 963 }, { "en": "Taiwan", "zh": "臺灣省", "locale": "TW", "code": 886 }, { "en": "Tajikstan", "zh": "塔吉克", "locale": "TJ", "code": 992 }, { "en": "Tanzania", "zh": "坦尚尼亞", "locale": "TZ", "code": 255 }, { "en": "Thailand", "zh": "泰國", "locale": "TH", "code": 66 }, { "en": "Togo", "zh": "多哥", "locale": "TG", "code": 228 }, { "en": "Tonga", "zh": "湯加", "locale": "TO", "code": 676 }, { "en": "Trinidad and Tobago", "zh": "特立尼達和多巴哥", "locale": "TT", "code": 1809 }, { "en": "Tunisia", "zh": "突尼西亞", "locale": "TN", "code": 216 }, { "en": "Turkey", "zh": "土耳其", "locale": "TR", "code": 90 }, { "en": "Turkmenistan", "zh": "土庫曼", "locale": "TM", "code": 993 }, { "en": "Uganda", "zh": "烏干達", "locale": "UG", "code": 256 }, { "en": "Ukraine", "zh": "烏克蘭", "locale": "UA", "code": 380 }, { "en": "United Arab Emirates", "zh": "阿拉伯聯合大公國", "locale": "AE", "code": 971 }, { "en": "United Kiongdom", "zh": "英國", "locale": "GB", "code": 44 }, { "en": "United States of America", "zh": "美國", "locale": "US", "code": 1 }, { "en": "Uruguay", "zh": "烏拉圭", "locale": "UY", "code": 598 }, { "en": "Uzbekistan", "zh": "烏茲別克", "locale": "UZ", "code": 233 }, { "en": "Venezuela", "zh": "委內瑞拉", "locale": "VE", "code": 58 }, { "en": "Vietnam", "zh": "越南", "locale": "VN", "code": 84 }, { "en": "Yemen", "zh": "葉門", "locale": "YE", "code": 967 }, { "en": "Yugoslavia", "zh": "南斯拉夫", "locale": "YU", "code": 381 }, { "en": "Zimbabwe", "zh": "辛巴威", "locale": "ZW", "code": 263 }, { "en": "Zaire", "zh": "扎伊爾", "locale": "ZR", "code": 243 }, { "en": "Zambia", "zh": "尚比亞", "locale": "ZM", "code": 260 } ]
然後基於json做了一個選擇器
使用起來非常簡單
public class MainActivity extends AppCompatActivity { private ImageView ivFlag; private TextView tvName; private TextView tvCode; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ivFlag = (ImageView) findViewById(R.id.iv_flag); tvName = (TextView) findViewById(R.id.tv_name); tvCode = (TextView) findViewById(R.id.tv_code); } public void click(View view) { CountryPicker.newInstance(null, new OnPick() { @Override public void onPick(Country country) { if(country.flag != 0) ivFlag.setImageResource(country.flag); tvName.setText(country.name); tvCode.setText("+" + country.code); } }).show(getSupportFragmentManager(), "country"); } @Override protected void onDestroy() { Country.destroy(); super.onDestroy(); } }
其實代碼非常的簡單,但是要把各個國家或者地區對應的中英文名稱和國旗一一對應起來實在是一件費時費力的事情。
代碼地址:
1.CSDN: http://download.csdn.net/download/u013028621/10121135
2.github:https://github.com/sahooz/country-picker-android