Github地址:美食分享平台,欢迎star和fork
注:本文只包括活动的设计和头像组件的引用,不包括界面xml的设计,界面设计具体详见Android开发(3):个人信息界面设计
效果图
思路
在上面的界面设计的基础上,这次任务主要分成两个大方面:照片和信息选择框。
- 照片主要是使用Android原生的读取图片的方式,相册和拍照的选择框是使用popupwindows的方式展示;
- 信息选择框弹出的框可以使用开源库OptionPickerView。
- 至于修改昵称的,因为的新建一个界面,比较简单,本文就没有叙述。
一、信息选择框
在开始之前,首先要去学习一个开源库OptionPickerView的使用方法,这种库可以很简单是实现那个选择框的样式。
1. 初始化信息
这一步就是每个人应该修改的地方,就是点击之后弹出来的信息不同。然后将下面的initOptionData加入到onCreate方法中。
//初始化性别、地址和生日的数据
private void initOptionData(){
//性别选择器数据
optionsItems_gender.add(new String("保密"));
optionsItems_gender.add(new String("男"));
optionsItems_gender.add(new String("女"));
//地址选择器数据
String province_data = readJsonFile("province.json");
String city_data = readJsonFile("city.json");
Gson gson = new Gson();
options1Items = gson.fromJson(province_data, new TypeToken<ArrayList<ProvinceBean>>(){}.getType());
ArrayList<CityBean> cityBean_data = gson.fromJson(city_data, new TypeToken<ArrayList<CityBean>>(){}.getType());
for(ProvinceBean provinceBean:options1Items){
ArrayList<String> temp = new ArrayList<>();
for (CityBean cityBean : cityBean_data){
if(provinceBean.getProvince().equals(cityBean.getProvince())){
temp.add(cityBean.getName());
}
}
options2Items.add(temp);
}
}
其中用到的readjson函数如下。但是在使用的时候需要主要把这两个json文件放在assets文件夹之中,如果不需要选地址或者json文件格式不同,可以自行修改读取方式。我使用的json文件可以在这个参考链接中下载,两个文件名字分别对应的文件。https://juejin.im/post/5de5f42cf265da05c621133a
//传入:asset文件夹中json文件名
//返回:读取的String
private String readJsonFile(String file){
StringBuilder newstringBuilder = new StringBuilder();
try {
InputStream inputStream = getResources().getAssets().open(file);
InputStreamReader isr = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(isr);
String jsonLine;
while ((jsonLine = reader.readLine()) != null) {
newstringBuilder.append(jsonLine);
}
reader.close();
isr.close();