1. 程式人生 > >實現滑動的幾種簡單方法

實現滑動的幾種簡單方法

<span style="font-family:Comic Sans MS;font-size:14px;">public boolean onTouchEvent(MotionEvent event) {
		float x = event.getX();
		float y = event.getY();
		// float x = event.getRawX();
		// float y = event.getRawY();
		switch (event.getAction()) {

		case MotionEvent.ACTION_DOWN:
			mLastX = x;
			mLastY = y;

			break;

		case MotionEvent.ACTION_MOVE:
			int offsetX = (int) (x - mLastX);
			int offsetY = (int) (y - mLastY);
			<span style="color:#ff0000;">// 使用layout進行位移</span>
			// layout(getLeft() + offsetX, getTop() + offsetY, getRight()
			// + offsetX, getBottom() + offsetY);

			<span style="color:#ff0000;">// 使用offsetLeftAndRight、offsetTopAndBottom</span>
			// offsetLeftAndRight(offsetX);
			// offsetTopAndBottom(offsetY);

			<span style="color:#ff0000;">// 使用MarginLayoutParams</span>
			// marginLayoutParams = (MarginLayoutParams) getLayoutParams();
			// marginLayoutParams.setMargins(getLeft() + offsetX, getTop()
			// + offsetY, 0, 0);
			// setLayoutParams(marginLayoutParams);

			<span style="color:#cc0000;">// 使用scroll,引數為正向上滑</span>
			((View) getParent()).scrollBy(-offsetX, -offsetY);

			// 使用絕對座標一定要重新設定初始座標
			// mLastX = x;
			// mLastY = y;
			break;
		case MotionEvent.ACTION_UP:
			<span style="color:#ff0000;">// 使用scroller</span>
			View viewParent = ((View) getParent());
			//不知道為什麼滑出屏幕後不會滑回來
			mScroller.startScroll(viewParent.getScrollX(),
					viewParent.getScrollY(), -viewParent.getScrollX(),
					-viewParent.getScrollY());
			viewParent.invalidate();
			break;
		}
		return true;
	}

	@Override
	public void computeScroll() {
		super.computeScroll();
		if (mScroller.computeScrollOffset()) {
			((View) getParent()).scrollTo(mScroller.getCurrX(),
					mScroller.getCurrY());
			invalidate();
		}
	}</span>

相關推薦

實現滑動簡單方法

<span style="font-family:Comic Sans MS;font-size:14px;">public boolean onTouchEvent(MotionEvent event) { float x = event.getX();

將電腦瀏覽器User-Agent識別改成手機瀏覽器UA簡單方法

第一種方法:修改瀏覽器的快捷方式 右擊桌面上的Chrome瀏覽器圖示,在彈出的右鍵選單中選擇“複製”,複製一個圖示副本到桌面。右擊該副本,選擇“屬性”,開啟相應的對話方塊,在“目標”文字框的字元後面新增以下語句: --user-agent="Android",如下圖:  --user-agent

阻止a標籤預設事件的簡單方法

第一種: <a href = " javascript: void ( 0 ); ">百度</a> 或者<a href = " javascript:; ">百度</a> 測試:(可行)<a href="javascri

清除浮動的簡單方法:萬能清除浮動法,clear:both......

方法一:給父級元素新增宣告:overflow:hidden;。 例: .wrap{ border:3px solid #000;overflow:hidden;} .box01{ width:500px; height:500px; background:#F

阻止a標籤預設行為的簡單方法

寫這篇文章的契機是由於公司最近一個系統專案,基於dwz框架做的。框架內部獲取內容的原理是使用ajax的load()方法來做的。所以自然會涉及到給定的元素的要先遮蔽其連結跳轉,然後再使用ajax的原理進行內容載入和讀取。 如下所示: 方法1: <a h

iOS網路通訊的簡單方法

在Demo中介紹了iOS幾種簡單的網路通訊方式。 1、AFNetworking(http/https) 支援介面 //get請求 -(void) httpGet: (NSString *)url parameters: (id)parameters identifi

簡單的負載均衡算法及其Java代碼實現

hsb p12 vld tar www. 簡單的 sin all .com jdsbuy肇岡唾氈瀉節http://www.docin.com/app/user/userinfo?userid=179258715a4cqu2瘟萄優歐壹讜http://huiyi.docin.c

PHP實現獲取文件後綴名的常用方法

後綴名 get file cti lower urn rpo info 常用方法 方法1: function get_file_type($filename){ $type = substr($filename, strrpos($filename, ".")+1)

PHP實現獲取檔案字尾名的常用方法

方法1: function get_file_type($filename){ $type = substr($filename, strrpos($filename, ".")+1); return $type; } 方法2: function get_file_type($filena

Java單例模式實現方法

package offer; public class Test02 { /** * 01 餓漢模式 執行緒安全 */ public static class Singleton{ private final static Singleton

Python實現簡單的排序算法

第一個 出現 冒泡 列表 nbsp 工作 代碼實現 描述 false 一.冒泡排序 概念:為一個無序的列表排成有序的 實現過程描述:(升序)   1.比較相鄰的元素,如果第一個比第二個大,就交換他們的位置   2.對每一對相鄰元素重復1的工作,從開始第一隊到最後一對

Python實現簡單的排序演算法

一.氣泡排序 概念:為一個無序的列表排成有序的 實現過程描述:(升序)   1.比較相鄰的元素,如果第一個比第二個大,就交換他們的位置   2.對每一對相鄰元素重複1的工作,從開始第一隊到最後一對,最後結束的時候最大的數會在後面   3.針對所有元素重複1,2的工作,除了最後一個數,因為最後的數最大

實現對gridview刪除行時彈出確認對話方塊的一簡單方法

首先,在GridView的屬性對框話框中點選“Columns”進入它的“欄位”設計器。接著在“欄位”設計器中選擇以前已加上的那個CommandField“刪除”列,這時在它的屬性列表下會看到一個“將此它段轉換為 TemplateFied”的項,點選將它轉換為TemplateFied列。完後退出該欄位設計器,切

SpringBoot---系統啟動載入實現方法

1.CommandLineRunner  通過實現介面 CommandLineRunner 來實現,來完成專案啟動就載入所需要的資源。 import org.springframework.boot.CommandLineRunner; import org.springfra

Python中常見方法實現斐波那契數列

Python常見斐波那契解決方案 n=35 #1.遞迴求斐波那契 def fibo(n): return 1 if n<3 else fibo(n-1)+fibo(n-2) print(fibo(n)) #2.迴圈求斐波那契 f1,f2=0,1 for i

簡單的文字資料預處理方法

  將開頭和結尾的一些資訊去掉,使得開頭如下:   One morning, when Gregor Samsa woke from troubled dreams, he found himself transformed in his bed into a horrib

CSS方法實現元素垂直居中

    最近在專案中又用到了元素的垂直居中,在這裡整理總結一下可以實現元素垂直居中的幾種方法。     方法1:(單行元素垂直水平居中)     利用line-height實現單行元素的垂直居中。                                   

選項卡的實現方法

今天總結一下頁面中選項卡實現的幾種方法。在實戰中會經常的使用到。下面的方法都是純HTML+CSS,並沒有用到JS,JS日後補上。 一、使用:target屬性實現選項卡        頁面的結構:(h

簡單概述JQuery的過濾方法

為了更加靈活地的操作元素,除了選擇器之外,JQuery還為我們提供了過濾、查詢方法。過濾和查詢補充了很多選擇器無法進行的操作。 1、first()/last()方法 返回被選元素的首個元素/最後一個元素。 <ol> <

用遞迴或者for迴圈求1-20的乘積的簡單實現

// 通過遞迴求1-20的乘積 function cj(n) { if (n >= 2) return n * cj(n - 1); else return n; } cj(20); // 或者 function cj(n) { if (n <= 19) return n * c