android书架效果,可以触底刷新

前段时间需要做一个书架效果,上网研究了下,发现由于gridview不能定义行背景,这种效果还不是很好做。

首先是从网上找了下思路,listview的思路的果断放弃,因为要自己分列,并且管理每一行的细节,太麻烦。


在网上找到如下博文。

http://blog.csdn.net/wangkuifeng0118/article/details/7944215

但是这个还可以实现抽屉打开等功能,对我的需求来说太过复杂,而且作者还有很多细节没处理好,还是自己做个是适应性比较好的简单书架效果吧。

源码下载附后面,大体思路如下:

1、简单的书架效果其实只要根据gridview大小动态绘制行背景即可,所以要自定义gridview在里面重写dispatchDraw方法,项目中的ContentGridView就是此作用。

2、需要触底刷新,就需要有监听滑动到底的监听器,但是gridview不支持这种方式,所以需要嵌套ScrollView。由于gridview控件已自带有ScrollView,要使两者不冲突,需要重写ScrollView,项目中的ContentScrollView就是此作用。

3、每一本书的都是一个imageview,在代码中定义,大小是用dp为单位的固定数值,通过方法转为px来定义布局。每个imageview都通过setPadding方法调整下内间距。以便跟书架底有一个合适的距离。
4、书架的列数是在代码中写死的,因为gridview获取列数的方法是api 11后才有。如果非要在xml文件中写书架列数,代码中获取,建议通过自定义属性实现。

5、在xml中定义gridview时注意设android:verticalSpacing为0,否则书本的位置会随着行数的增加而不准,因为背景图高度是通过gridview高度除以行数决定的,但是gridview的高度不包括android:verticalSpacing定义的行间距,如果非要定义,就要在计算行高时把其考虑在内。


最终效果如下图

    


源码   http://download.csdn.net/detail/caizhegnhao/7825009


最后说几句,我转来做android开发不久,感觉android开发做一些复杂的效果时经常需要查外国网站,最新api文档也要去google那里看,但是天朝封网封的厉害,这让我很蛋疼,不知道大家是怎么解决这种问题的。


  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值