猴年猴赛雷啊各位,今天没吃药我感觉自己萌萌哒!
qq和微信和支付宝红包大战,不知道各位的战绩是多少嘞? 反正我qq抢到的都是气泡。因为太不爽,所以自己写一个下拉抢红包自己玩(自己跟自己玩)。
先来看效果图。这个…… 呃~~ -__-” 。。有点丑 是低仿。
转载请注明出处:http://blog.csdn.net/wingichoy/article/details/50662592
学习完本篇博客你能获得到的知识
- 正确的获得view的大小
- listview的下拉header
- 自定义字体
- 自己添加监听器
废话不多说,快跟我来一起动手
- 首先来跟我打造一个自定义的listview
新建一个类,继承自listview,这里需要来重写一下他的overScrollBy()方法。
public class HBListView extends ListView {
//header显示的图片
private MyImageView mImageView;
private Context mContext;
//抢到红包时候的监听器
private OnSuccessListener mOnSuccessListener;
@Override
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
Log.e("wing", "deltaY:" + deltaY + " scrollY:" + scrollY);
return super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent);
}
先来介绍一下重要参数的意思
deltaX,Y是指速度值,也就是你手指滑动的瞬时速度。
scrollX,Y 水平和数值方向上的变化量
isTouchEvent 表示手指是否在触摸状态
观察log可以轻易看到他们与手机触摸的关系。大家自己试验一下就可以。
接着给listview加一个header
mListView = (HBListView) findViewById(R.id.lv);
final View header = LayoutInflater.from(this).inflate(R.layout.view_header,null);
mListView.addHeaderView(header);
其实这个header就是个图片。 我们刚才从listview的监听上面看到了偏移量。所以可以根据偏移量来动态改变图片的大小。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.wingsofts.hongbao.MyImageView
android:id = "@+id/imageView"
android:scaleType="centerCrop"
android:layout_width="m