效果圖省略。。
activity_main.xml(僅僅有乙個自己定義listview)
mainactivity(arraylistadapter 為了簡化**)
package com.example.dampingdemo;
import android.os.bundle;
import android.widget.arrayadapter;
public class mainactivity extends activity ;
//獲取介面卡
arrayadapteradapter = new arrayadapter(this,android.r.layout.******_list_item_1,data );
//設定介面卡
dampinglistview.setadapter(adapter);
}}
dampinglistview1(第一種方法)
package com.example.dampingdemo;
import android.content.context;
import android.util.attributeset;
import android.util.displaymetrics;
import android.util.log;
import android.view.motionevent;
import android.widget.expandablelistview;
import android.widget.listview;
/** * 1. 在view中新增了oversrollby方法,用於記錄x, y 軸上滾動
2. 在abslistview的ontouchevent中推斷是否到達邊界(頂部 或 底部) ,然後呼叫view.overscrollby ,傳入 mscrolly等引數
3. overscrollby 終於賦值給view的mscrollx, mscrolly 兩個變數
4. 在abslistview中呼叫完overscrollby之後,呼叫invalidate重繪
* */
public class dampinglistview1 extends listview
public dampinglistview1(context context, attributeset attrs)
public dampinglistview1(context context, attributeset attrs, int defstyle)
private void initbouncelistview()
@override
protected boolean overscrollby(int deltax, int deltay, int scrollx,
int scrolly, int scrollrangex, int scrollrangey,
int maxoverscrollx, int maxoverscrolly, boolean istouchevent)
}
+++++++++++++++++++++++++++或者另外一種方法+++++++++++++++++++++++++++++++++++++++
dampinglistview
package com.example.dampingdemo;
import android.content.context;
import android.util.attributeset;
import android.util.log;
import android.view.motionevent;
import android.widget.expandablelistview;
import android.widget.listview;
public class dampinglistview extends listview implements runnable
public dampinglistview(context context, attributeset attrs)
public dampinglistview(context context)
/*** touchevent事件
*/@override
public boolean ontouchevent(motionevent event)
break;
case motionevent.action_cancel:
break;
case motionevent.action_up:
// 手指離開之後觸發
if (mdistance != 0)
// 又一次賦值
mlastdowny = 0f;
mdistance = 0;
break;
case motionevent.action_move: // 手指按下之後滑動觸發
if (mlastdowny != 0f)
}// 置為0。有自己主動滑動的效果
mdistance = 0;
break;
} return super.ontouchevent(event);
} public void run()
mstep += 1;
this.post(this);
}}
Android果凍效果(阻尼動畫)
之前發了乙個drawable實現動畫效果的帖子,有人找我要過相應圓弧繪製演算法,仔細想想那個專案中有些地方還是值得分享出來的,趁現在專案不忙,就準備分享出來。只有一些演算法的東西,不涉及具體業務 效果如下 即activity a 進入 到activity b時會出現的動畫效果如上 主要由兩個動畫組成...
ListView點選效果設定
android focusable true android focusableintouchmode true 以上兩個屬性一起使用有些特別的地方,比如設定 itemview的android focusable true android focusableintouchmode true 可以使i...
ListView彈性下拉效果
效果圖 用什麼實現的?通過屬性動畫和事件分發機制實現的。只分析實現原理和關鍵 1.自定義乙個view繼承listview public class pullseparatelistview extends listview 2.複寫listview的dispatchtouchevent方法 核心 o...