本文實例為大家分享了Android實現View滑動的具體方法,供大家參考,具體內容如下
1.View的滑動簡介
View的滑動是Android實現自定義控件的基礎,同時在開發中我們也難免會遇到View的滑動的處理。其實不管是那種滑動的方式基本思想都是類似的:當觸摸事件傳到View時,系統記下觸摸點的坐標,手指移動時系統記下移動后的觸摸的坐標并算出偏移量,并通過偏移量來修改View的坐標。
實現View滑動有很多種方法,這篇文章主要講解六種滑動的方法,分別是:layout()、offsetLeftAndRight()與offsetTopAndBottom()、LayoutParams、動畫、scollTo與scollBy和Scroller;在下一篇文章我們會詳細介紹屬性動畫。
2.實現View滑動的六種方法
1.layout()
view進行繪制的時候會調用onLayout()方法來設置顯示的位置,因此我們同樣也可以通過修改View的left、top、right、bottom這四種屬性來控制View的坐標。首先我們要自定義一個View,在onTouchEvent()方法中獲取觸摸點的坐標:
public boolean onTouchEvent(MotionEvent event) { //獲取到手指處的橫坐標和縱坐標 int X = 0, newX = 0; int Y = 0, newY = 0; switch (event.getAction()) { case MotionEvent.ACTION_DOWN: Log.d("hahahhaha", "屏幕位置被按下"); X = (int) event.getX(); Y = (int) event.getY(); break;接下來我們在ACTION_MOVE事件中計算偏移量,再調用layout()方法重新放置這個自定義View的位置就好了:
public boolean onTouchEvent(MotionEvent event) { //獲取到手指處的橫坐標和縱坐標 int X = 0, newX = 0; int Y = 0, newY = 0; switch (event.getAction()) { case MotionEvent.ACTION_DOWN: Log.d("hahahhaha", "屏幕位置被按下"); X = (int) event.getX(); Y = (int) event.getY(); break; case MotionEvent.ACTION_MOVE: Log.d("hahahhaha", "屏幕位置在移
主站蜘蛛池模板:
临夏市|
九台市|
陆川县|
勐海县|
新竹县|
永新县|
钟祥市|
筠连县|
长沙市|
永丰县|
隆回县|
宜都市|
安图县|
曲麻莱县|
荆州市|
岚皋县|
乌兰察布市|
宁都县|
抚顺市|
高密市|
平潭县|
井陉县|
安仁县|
汉阴县|
紫金县|
叶城县|
镇雄县|
昆山市|
武威市|
辉南县|
平顶山市|
治县。|
宁波市|
武夷山市|
晴隆县|
鄱阳县|
大新县|
仁寿县|
敦煌市|
肇州县|
宣城市|