Android自定義View實(shí)現(xiàn)隨手勢滑動(dòng)控件
本文控件為大家分享了Android隨手勢滑動(dòng)控件的具體代碼,供大家參考,具體內(nèi)容如下
1.新建自定義控件類:MyView
public class MyView extends Button{ //記錄上次滑動(dòng)后的坐標(biāo)值 private int lastX; private int lastY; public MyView(Context context) { super(context); // TODO Auto-generated constructor stub } public MyView(Context context, AttributeSet attrs){ super(context, attrs); } @Override public boolean onTouchEvent(MotionEvent event) { // 獲取view相對于手機(jī)屏幕的xy值 int x=(int) event.getRawX(); int y=(int) event.getRawY(); switch (event.getAction()) { case MotionEvent.ACTION_DOWN: break; case MotionEvent.ACTION_MOVE: int deltaX=x-lastX; int deltaY=y-lastY; int translationX = (int) (ViewHelper.getTranslationX(this) + deltaX); int translationY = (int) (ViewHelper.getTranslationY(this) + deltaY); ViewHelper.setTranslationX(this,translationX); ViewHelper.setTranslationY(this,translationY); break; case MotionEvent.ACTION_UP: break; default: break; } lastX = x; lastY = y; return true; }
上面代碼就是一個(gè)自定義按鈕類,重寫onTouchEvent()方法來監(jiān)聽用戶滑動(dòng),既然說到滑動(dòng)肯定會存在偏移量的說法。
translationX、translationY是View左上角相對于父布局的偏移量。通過第三方nineoldandroids來實(shí)現(xiàn)動(dòng)畫滑動(dòng)。
ViewHelper.getTranslationY(this)計(jì)算該View的偏移量,初始值為0,向左偏移值為負(fù),向右偏移值為正。
2.xml布局
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" > <com.example.administrator.slide.MyView android:id="@+id/myview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="我可以滑動(dòng)"/> </RelativeLayout>
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android 高仿微信朋友圈動(dòng)態(tài)支持雙擊手勢放大并滑動(dòng)查看圖片效果
- Android實(shí)現(xiàn)圖片自動(dòng)輪播并且支持手勢左右無限滑動(dòng)
- Android實(shí)現(xiàn)手勢滑動(dòng)和簡單動(dòng)畫效果
- Android實(shí)現(xiàn)手勢滑動(dòng)多點(diǎn)觸摸放大縮小圖片效果
- Android手勢滑動(dòng)實(shí)現(xiàn)ImageView縮放圖片大小
- Android GestureDetector手勢滑動(dòng)使用實(shí)例講解
- android中view手勢滑動(dòng)沖突的解決方法
- Android實(shí)現(xiàn)手勢滑動(dòng)多點(diǎn)觸摸縮放平移圖片效果
- Android實(shí)現(xiàn)手勢滑動(dòng)多點(diǎn)觸摸縮放平移圖片效果(二)
- Android獲取觸摸手勢實(shí)現(xiàn)左右滑動(dòng)
相關(guān)文章
Android編程實(shí)現(xiàn)計(jì)算兩個(gè)日期之間天數(shù)并打印所有日期的方法
這篇文章主要介紹了Android編程實(shí)現(xiàn)計(jì)算兩個(gè)日期之間天數(shù)并打印所有日期的方法,涉及Android日期時(shí)間相關(guān)轉(zhuǎn)換與運(yùn)算操作技巧,需要的朋友可以參考下2018-01-01Android自定義View實(shí)現(xiàn)shape圖形繪制
這篇文章主要為大家詳細(xì)介紹了Android使用自定義View實(shí)現(xiàn)shape圖形繪制,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01ActivityLifecycleCallbacks如何判斷APP是否在前臺
這篇文章主要為大家詳細(xì)介紹了ActivityLifecycleCallbacks判斷APP是否在前臺的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-07-07android讀寫sd卡操作寫入數(shù)據(jù)讀取數(shù)據(jù)示例
這篇文章主要介紹了android讀寫sd卡操作,示例實(shí)現(xiàn)了寫入數(shù)據(jù)讀取數(shù)據(jù)的功能,大家參考使用吧2014-01-01flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)
這篇文章主要為大家介紹了flutter項(xiàng)目引入iconfont阿里巴巴圖標(biāo)的過程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Android自定義Dialog實(shí)現(xiàn)通用圓角對話框
這篇文章主要為大家詳細(xì)介紹了Android自定義Dialog實(shí)現(xiàn)通用圓角對話框,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-11-11android studio 3.0 升級 項(xiàng)目遇到的問題及更改思路(問題小結(jié))
Android Studio從3.0版本新增了許多功能,當(dāng)然首當(dāng)其沖就是從3.0版本新增了對 Kotlin 開發(fā)語言的支持,除此之外還有其他一些新功能。很多小伙伴在android studio 3.0 升級項(xiàng)目遇到很多問題,下面小編給大家分享一些問題小結(jié)及解決辦法,一起看看吧2017-11-11android studio 3.0 service項(xiàng)目背景音樂實(shí)現(xiàn)
這篇文章主要介紹了android studio 3.0中service項(xiàng)目實(shí)現(xiàn)插入背景音樂的方法。2017-11-11