最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android自定義實(shí)現(xiàn)可回彈的ScollView

 更新時間:2022年04月18日 14:13:07   作者:清風(fēng)一杯酒  
這篇文章主要為大家詳細(xì)介紹了Android自定義實(shí)現(xiàn)可回彈的ScollView,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下

前言

  • 仿IOS回彈效果
  • 為了增強(qiáng)用戶體驗,自定義一個可回彈的ScrollView是一個不錯的選擇,而且這種效果還是很簡單的

把原來的ScollView標(biāo)簽替換一下就好了

<?xml version="1.0" encoding="utf-8"?>
<com.mycompany.myapp.MyScrollView
? ?xmlns:android="http://schemas.android.com/apk/res/android"
? ?android:layout_height="match_parent"
? ?android:layout_width="match_parent"
? ?android:fillViewport="true">

? ?<LinearLayout
? ? ? android:layout_height="match_parent"
? ? ? android:layout_width="match_parent"
? ? ? android:gravity="center"
? ? ? android:background="#FFABE346"
? ? ? android:elevation="1dp">

? ? ? <TextView
? ? ? ? ?android:layout_height="wrap_content"
? ? ? ? ?android:layout_width="wrap_content"
? ? ? ? ?android:text="可回彈的Scollview"/>

? ?</LinearLayout>

</com.mycompany.myapp.MyScrollView>
public class MyScrollView extends ScrollView
{
? ?private View convertView;
? ?private Rect originalRect=new Rect();
? ?private int startY,offsetY;

? ?public MyScrollView(Context context)
? ?{
? ? ? super(context);
? ?}
? ?public MyScrollView(Context context, AttributeSet attrs)
? ?{
? ? ? super(context, attrs);
? ?}
? ?public MyScrollView(Context context, AttributeSet attrs, int defStyleAttr)
? ?{
? ? ? super(context, attrs, defStyleAttr);
? ?}

? ?@Override
? ?protected void onFinishInflate()
? ?{
? ? ? super.onFinishInflate();
? ? ? //獲取子視圖
? ? ? convertView = getChildAt(0);
? ?}

? ?@Override
? ?protected void onLayout(boolean changed, int l, int t, int r, int b)
? ?{
? ? ? super.onLayout(changed, l, t, r, b);
? ? ? //記錄原來的位置
? ? ? originalRect.set(l,t,r,b);
? ?}
? ?
? ?
? ?@Override
? ?public boolean dispatchTouchEvent(MotionEvent ev)
? ?{
? ? ? switch (ev.getAction())
? ? ? {
? ? ? ? ?case MotionEvent.ACTION_DOWN:
? ? ? ? ? ? {
? ? ? ? ? ? ? ?//記錄第一次的手指觸摸位置
? ? ? ? ? ? ? ?startY = (int) ev.getY();
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? ?case MotionEvent.ACTION_MOVE:
? ? ? ? ? ? {
? ? ? ? ? ? ? ?//記錄拖動時的手指觸摸位置
? ? ? ? ? ? ? ?offsetY = ((int) ev.getY()) - startY;
? ? ? ? ? ? ? ?//讓子視圖跟隨手指拖動
? ? ? ? ? ? ? ?convertView.layout(originalRect.left,originalRect.top+(int)(offsetY*0.5f)
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ,originalRect.right,originalRect.bottom+(int)(offsetY*0.5f));
? ? ? ? ? ? }
? ? ? ? ? ? break;
? ? ? ? ?case MotionEvent.ACTION_UP:
? ? ? ? ? ? {
? ? ? ? ? ? ? ?//回彈動畫
? ? ? ? ? ? ? ?TranslateAnimation offsetAnim=new TranslateAnimation(0,0,convertView.getTop(),originalRect.top);
? ? ? ? ? ? ? ?offsetAnim.setDuration(200);
? ? ? ? ? ? ? ?convertView.startAnimation(offsetAnim);
? ? ? ? ? ? ? ?//讓子視圖回到原來的位置
? ? ? ? ? ? ? ?convertView.layout(originalRect.left,originalRect.top,originalRect.right,originalRect.bottom);
? ? ? ? ? ? }
? ? ? }
? ? ? return super.dispatchTouchEvent(ev);
? ?}
}

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android吸頂效果并有著ViewPager左右切換功能

    Android吸頂效果并有著ViewPager左右切換功能

    文章介紹了如何在Android應(yīng)用中實(shí)現(xiàn)類似美團(tuán)的吸頂效果,并使用ViewPager進(jìn)行左右切換,主要通過自定義NestedScrollView控件來解決滑動沖突,并使用post方法監(jiān)聽布局高度動態(tài)調(diào)整NestedScrollView的最大滑動距離,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Android自定義view實(shí)現(xiàn)左滑刪除的RecyclerView詳解

    Android自定義view實(shí)現(xiàn)左滑刪除的RecyclerView詳解

    RecyclerView是Android一個更強(qiáng)大的控件,其不僅可以實(shí)現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實(shí)現(xiàn)數(shù)據(jù)縱向滾動,也可以實(shí)現(xiàn)橫向滾動(ListView做不到橫向滾動)。接下來講解RecyclerView的用法
    2022-11-11
  • Android架構(gòu)發(fā)展進(jìn)化詳解

    Android架構(gòu)發(fā)展進(jìn)化詳解

    Android系統(tǒng)架構(gòu)從上到下分為五層:應(yīng)用層、應(yīng)用框架層、系統(tǒng)運(yùn)行庫層、硬件抽象層、Linux內(nèi)核層,Android架構(gòu)也經(jīng)歷了多次演進(jìn),下面我們來詳細(xì)了解一下
    2022-08-08
  • Android實(shí)現(xiàn)獲取SERIAL信息的方法

    Android實(shí)現(xiàn)獲取SERIAL信息的方法

    這篇文章主要介紹了Android實(shí)現(xiàn)獲取SERIAL信息的方法,涉及Android操作SERIAL的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10
  • Android RecyclerView的Item自定義動畫及DefaultItemAnimator源碼分析

    Android RecyclerView的Item自定義動畫及DefaultItemAnimator源碼分析

    這篇文章主要介紹了Android RecyclerView的Item自定義動畫及DefaultItemAnimator源碼,感興趣的小伙伴們可以參考一下
    2016-07-07
  • Android IntentService詳解及使用實(shí)例

    Android IntentService詳解及使用實(shí)例

    這篇文章主要介紹了Android IntentService詳解及使用實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-03-03
  • Android Studio 代碼導(dǎo)航快捷鍵

    Android Studio 代碼導(dǎo)航快捷鍵

    這篇文章主要介紹了Android Studio 代碼導(dǎo)航快捷鍵的相關(guān)資料,需要的朋友可以參考下
    2018-03-03
  • Android自動測試工具M(jìn)onkey的實(shí)現(xiàn)方法

    Android自動測試工具M(jìn)onkey的實(shí)現(xiàn)方法

    本文主要介紹Android Monkey 實(shí)現(xiàn)方法,Monkey測試是一種為了測試軟件的穩(wěn)定性、健壯性的快速有效的方法,具有非常重要的參考價值,希望對小伙伴有所幫助
    2016-07-07
  • Android textview 實(shí)現(xiàn)長按自由選擇復(fù)制功能的方法

    Android textview 實(shí)現(xiàn)長按自由選擇復(fù)制功能的方法

    下面小編就為大家?guī)硪黄狝ndroid textview 實(shí)現(xiàn)長按自由選擇復(fù)制功能的方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-04-04
  • Android如何通過URI獲取文件路徑示例代碼

    Android如何通過URI獲取文件路徑示例代碼

    這篇文章主要給大家介紹了關(guān)于Android如何通過URI獲取文件路徑的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對各位Android開發(fā)者們具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01

最新評論

凤凰县| 新晃| 泸西县| 射阳县| 洛阳市| 香港 | 茌平县| 玛曲县| 长阳| 景宁| 贡觉县| 田东县| 紫阳县| 镇安县| 自治县| 杭锦后旗| 太湖县| 芮城县| 河东区| 纳雍县| 临沂市| 永济市| 札达县| 乐安县| 张家川| 襄城县| 邢台市| 湘阴县| 彭水| 新化县| 静安区| 台湾省| 浠水县| 嵊泗县| 永善县| 扎鲁特旗| 剑河县| 嵊州市| 福贡县| 鄂尔多斯市| 深水埗区|