首页 > 代码库 > 工作阶段小结
工作阶段小结
一、注册登录 (技术点和解决的问题)
1. http协议使用
2. 数据加密(对称加密,非对称加密 ------了解下算法)
3. JSON 数据格式和解析,及其使用
4. 页面跳转时计时器的及时销毁和重建,销毁和重建的时机。(类似地,要彻底理解并记住android组件的生命周期,及其回调函数的调用时机)----这是重点。
5. 注册成功后的动画(像两扇门开启,开启后页面不是动画前页面而是另外页面)问题:解决方法开启异步线程启动成功页面,然后继续原线程中销毁本身(若加计时器时间上可能不是很好控制)。
6. 异步网络请求后,回调主线程方法时,要判断fragment是否添加到activity中(isAdded()方法),否则可能出现getActivity()失败的情况。
二、动态通知模块
开发前准备:
1.仔细观察设计图,想好开发思路。确定UI。 2.开发前要多与设计、产品沟通,画出流程草图再与经理沟通,确认流程正确后,再继续进行开发。(切记最好画流程图或UML)。做好文档备份。
开发中问题以及解决方法:
1.标签文本解析(当时做的匆忙,没有彻底理解其解析原理和方法思路,今后一定进行扩展,并适当了解各个方法)。
2.流程不符设计造成的返工问题。后台线程循环请求数据后写数据库,再读取到界面。
循环数据请求,而不是函数回调方法。回调方法可能造成的栈溢出问题(进一步了解)。
3.同一TextView中点击不同文本触发不同事件的方案:ClickableSpan
4.点击文字出现的背景色问题。
调用TextView.setMovementMethod(LinkMovementMethod.getInstance())方法后才能启动响应事件方法。
代码:
String txt = comment.getComment_txt();
SpannableString spannableString = new SpannableString(txt);
ClickableSpan clickableSpan = new ClickableSpan() {
@Override
public void onClick(View widget) {
showBubbleWindow(widget,comment,position);
widget.invalidate();
avoidHintColor(widget);
}
@Override
public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setColor(mContext.getResources().getColor(R.color.text_gray_626262));
ds.setUnderlineText(false);
}
};
spannableString.setSpan(new BackgroundColorSpan(android.R.color.transparent),0,txt.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE);
spannableString.setSpan(clickableSpan,0,txt.length(),Spanned.SPAN_INCLUSIVE_INCLUSIVE);
viewHolder.txtComment.setMovementMethod(LinkMovementMethod.getInstance());
viewHolder.txtComment.setText(spannableString);
private void avoidHintColor(View view){
if(view instanceof TextView)
((TextView)view).setHighlightColor(mContext.getResources().getColor(android.R.color.transparent));
}
三、评论模块
1.评论列表加载后,界面刷新默认性别头像闪动问题。
解决方法:setImageResource()
2.理解StickyListHeadersListView开源库的实现原理,可帮助理解android中AdapterView的View回收和复用机制。目标要求自己也能做出类似的控件。
3.下拉刷新列表重复问题。
4.键盘落下黑色背景问题。
5.上拉加载动画显示。
四、滤镜模块
五、贴纸模块
1.拖拽旋转
2.Android绘图机制
3.Android事件传递机制
六、设置模块
1.语言切换
2.仿IOS时间选择器
3.跳转到应用市场
七、应用启动模块
1.自动认证登录
2.启动动画
3.用户对应用设置的参数读取
七、android系统适配:
几种适配方法:
1. 代码中动态计算
2.values文件夹方法。一个比例,一个计算公式,以及屏幕度量单位的概念及区别。
3.layout_weight
4.drawable目录下提供不同的资源。
工作阶段小结