仿iOS页面回弹效果

好久没写啦!忙于各种乱七八糟的事。今天是来深圳的第54天,依旧无业游民,浑浑噩噩,不知所措,想想真是可笑,竟然连入行的机会都没有,但是并不想放弃,因为这是我所喜爱的编程!


  回归正题,页面回弹其实是很简单的东西,只是之前没有接触,或者说是缺乏分析的思维,大概练得多了,会好些吧!
先分析下大概的思路,回弹效果分两部分。
 第一,当页面滑至边顶部或底部时,还可以继续滑动。
 第二,滑动完成,也就是手指离开屏幕时,页面回弹至原来的位置 。

 实现起来也比较简单,下面直接贴代码(带详细注释),相信都能够看得懂。

ListView的优化 一

  说到ListView优化,不得不谈谈五月份开发的校园社交App。耗时最长的就在ListView的性能优化上。
  最开始遇到的问题是,大量加载本地图片,UI渲染跟不上,原因是UI控件的实例太多,不能及时的回收。通过构建adapter的内部类,存储控件的实例,实现UI控件的复用,解决了该问题。但是,尼玛,同时又发现了新的问题。当滑动过快时,已经在界面外的图片还存留在界面中。参考某大神的做法(忘了是哪位),利用ImageView的Tag,给控件做标识。加载到该图片时,判断Tag是否相同,相同即加载图片。

  解决问题一

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHold hold = new ViewHold();
if (convertView == null) { // converView 不存在,则实例化
convertView = inflater.inflate(R.layout.item, null);
hold.iv = (ImageView) convertView.findViewById(R.id.iv);
convertView.setTag(hold);
} else { // converView 已存在,这使用Tag,实现复用
hold = (ViewHold) convertView.getTag();
}

return convertView;
}

/**
* 内部类,存储控件实例
*/

class ViewHold {
public ImageView iv;
}

Fragment的基本用法

Fragment的介绍


Fragment是为了适配平板,大屏手机而生的!
fragment必须依赖于activity,但同时拥有自己的生命周期。
你可以把fragment当成activity的其中一部分,或者全部用fragment来填充activity布局!可以更加灵活的设计UI,适配不同尺寸的android设备!

如下图(来自官网),就好比是我们常见的新闻阅读客户端,在平板中有足够大的空间来同时容纳两个或者更多的fragment。Fragment A 可用于存放文章列表,而Fragment B 可以显示对应的文章内容。而手机受限于屏幕尺寸,可以在Activity A 容纳Fragment A,当用户点击文章标题后,跳转到Activity B 中的fragment B来显示相应的内容。
来自Android官方文档

Hello World

  接触 Android开发也快一年吧!谈开发还是比较奢侈的。闲暇之余翻翻官文,敲敲代码,期间难免因学业而搁置了Android !因此,便诞生了Back小站。

  当然了,建立Back小站的初衷,不仅仅是为了记录android学习的方方面面,更是为了今后全面学习其他技术做更好的准备!

  平凡的世界里谁人不平凡。活着,也不过是来这世界走一遭罢了!喜怒哀乐,酸甜苦辣,尝遍。

  无悔就好!


  你好,世界!

  我来咯!


  fighting……(●>∀<●)