日本搞逼视频_黄色一级片免费在线观看_色99久久_性明星video另类hd_欧美77_综合在线视频

國內(nèi)最全I(xiàn)T社區(qū)平臺 聯(lián)系我們 | 收藏本站
阿里云優(yōu)惠2
您當(dāng)前位置:首頁 > 互聯(lián)網(wǎng) > ListView反彈

ListView反彈

來源:程序員人生   發(fā)布時間:2014-10-14 19:31:04 閱讀次數(shù):2982次
package com.rebound.myscroll;


import android.content.Context;
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.Animation.AnimationListener;
import android.view.animation.LinearInterpolator;
import android.view.animation.TranslateAnimation;
import android.widget.LinearLayout;
import android.widget.ListView;


/**
 * listView反彈
 * 
 */
public class ListViewFantan extends LinearLayout {


private float y_down;


public ListViewFantan(Context context, AttributeSet attrs) {
super(context, attrs);
}


@Override
public boolean onInterceptTouchEvent(MotionEvent ev) {
float y2 = ev.getY();
float y_move = 0;
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
y_down = y2;
break;
case MotionEvent.ACTION_MOVE:
y_move = y2 - y_down;
break;
case MotionEvent.ACTION_UP:
break;


default:
break;
}
// listview到頂了,頂部反彈
if (listView != null && y_move > 20
&& listView.getFirstVisiblePosition() == 0) {
View childAt = listView.getChildAt(0);
if (childAt != null && childAt.getTop() == 0) {
move_top = true;
move_bottom = false;
return true;// 自己處理
}
}
// listview到底了,底部反彈
if (listView != null) {
// listView.
View childAt = listView.getChildAt(listView.getChildCount() - 1);
if (childAt != null) {
int top = childAt.getTop();
int bottom = childAt.getBottom();
int height = getHeight();
System.out.println("bottom:" + bottom + "height:" + height);
if (bottom <= height && y_move < -20) {
move_bottom = true;
move_top = false;
// 到底了
return true;// 自己處理
}
}
}
return false;
}


/**
* 向上移動(頂部反彈)
*/
private boolean move_top;
/**
* 向下移動(底部反彈)
*/
private boolean move_bottom;


@Override
public boolean onTouchEvent(MotionEvent ev) {
float y2 = ev.getY();
float y_move = 0;
switch (ev.getAction()) {
case MotionEvent.ACTION_DOWN:
y_down = y2;
//System.out.println("down:" + y_down);
break;
case MotionEvent.ACTION_MOVE:
y_move = y2 - y_down;
//System.out.println("move:" + y_move);
if (move_top) {
//頂部反彈
this.setPadding(0, (int) y_move, 0, 0);
//System.out.println("padding_top:" + y_move);
} else if (move_bottom) {
//底部反彈
int abs = (int)Math.abs(y_move);
// System.out.println("padding_bottom:"+abs);
this.setPadding(0, 0, 0,abs );
MarginLayoutParams layoutParams = (MarginLayoutParams) listView
.getLayoutParams();
layoutParams.topMargin = (int) y_move;
listView.setLayoutParams(layoutParams);
}
invalidate();
break;
case MotionEvent.ACTION_UP:
//System.out.println("up/////////");
if (move_top) {

TranslateAnimation translateAnimation = new  TranslateAnimation( 0, 0,y_move, 0);
translateAnimation.setDuration(200);
translateAnimation.setFillAfter(true);
translateAnimation.setInterpolator(new  LinearInterpolator());
//translateAnimation.start();
translateAnimation.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {

}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
ListViewFantan.this.setPadding(0, 0, 0, 0);
}
});
listView.startAnimation(translateAnimation);
} else if (move_bottom) {

TranslateAnimation translateAnimation = new  TranslateAnimation( 0, 0,y_move, 0);
translateAnimation.setDuration(200);
translateAnimation.setFillAfter(true);
translateAnimation.setInterpolator(new  LinearInterpolator());
//translateAnimation.start();
translateAnimation.setAnimationListener(new AnimationListener() {

@Override
public void onAnimationStart(Animation animation) {

}

@Override
public void onAnimationRepeat(Animation animation) {
}

@Override
public void onAnimationEnd(Animation animation) {
ListViewFantan.this.setPadding(0, 0, 0, 0);
MarginLayoutParams layoutParams = (MarginLayoutParams) listView
.getLayoutParams();
layoutParams.topMargin = 0;
listView.setLayoutParams(layoutParams);
}
});
listView.startAnimation(translateAnimation);
}
invalidate();
move_top = false;
move_bottom = false;
break;


default:
break;
}
return super.onTouchEvent(ev);
}


private ListView listView;


@Override
protected void onFinishInflate() {
super.onFinishInflate();
View childAt = getChildAt(0);
if (childAt instanceof ListView) {
listView = (ListView) childAt;
}
}


}


生活不易,碼農(nóng)辛苦
如果您覺得本網(wǎng)站對您的學(xué)習(xí)有所幫助,可以手機(jī)掃描二維碼進(jìn)行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關(guān)閉
程序員人生
主站蜘蛛池模板: 欧美专区在线观看 | 国产一区二区毛片 | 91亚洲国产成人久久精品网站 | 久久中文字幕免费 | 国产精品久久久久久久久免费相片 | 亚洲一区二区三区四区精品 | 美女一区二区三区 | 性久久久久 | 国产免费a| 91视频一区二区 | 国产精品精品 | 男女av在线| 亚洲精品乱码久久久久久国产主播 | 成人不卡一区二区 | 国产综合亚洲精品一区二 | 国产麻豆乱码精品一区二区三区 | 成人区精品一区二区 | av一区二区三区 | 久久免费视频观看 | 国产激情精品一区二区三区 | 欧美综合77777色婷婷 | av网在线| 欧美精品成人一区二区三区四区 | 日韩国产| 久久性视频 | 免费a级黄毛片 | jizzjizz中文| 日日网 | 国产一区二区在线播放 | 亚洲永久免费 | 国产理论在线观看 | 欧美日韩精品免费 | 中文字幕在线一区二区三区 | 中文一区二区视频 | 日韩毛片在线看 | 国产一区二区三区影视 | 99精品在线观看 | 99九九热 | 欧洲精品久久久 | 欧美一区在线视频 | 国产精品久久久久久网站 |