日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

ViewPager頁面滑動效果,自定義PageTransformer實現(xiàn)想要的變換效果

來源: 責(zé)編: 時間:2024-05-30 09:08:38 189觀看
導(dǎo)讀PageTransformer是ViewPager內(nèi)部定義的一個接口,用于控制ViewPager中頁面(item view)的滑動效果。PageTransformer可以在頁面滑動過程中自定義頁面的變換效果,如透明度漸變、縮放、旋轉(zhuǎn)等。接口定義PageTransformer接口定

PageTransformer是ViewPager內(nèi)部定義的一個接口,用于控制ViewPager中頁面(item view)的滑動效果。PageTransformer可以在頁面滑動過程中自定義頁面的變換效果,如透明度漸變、縮放、旋轉(zhuǎn)等。1WH28資訊網(wǎng)——每日最新資訊28at.com

接口定義

PageTransformer接口定義了一個方法transformPage(View page, float position)1WH28資訊網(wǎng)——每日最新資訊28at.com

  • page:表示當前正在滑動的頁面視圖。
  • position:表示頁面相對于當前中心頁面的位置,值是一個浮點數(shù),范圍根據(jù)滑動方向有所不同。例如,當向左滑動時,當前頁面的position值變化為[0~-1],右邊頁面的position值變化為[1~0];向右滑動時,當前頁面的position值變化為[0~1],左邊頁面的position值變化為[-1~0]。

常見使用場景

  • 「透明度漸變」:在頁面滑動過程中改變頁面的透明度,實現(xiàn)淡入淡出效果。
  • 「縮放」:在頁面滑動過程中改變頁面的大小,實現(xiàn)縮放效果。
  • 「旋轉(zhuǎn)」:在頁面滑動過程中改變頁面的旋轉(zhuǎn)角度,實現(xiàn)旋轉(zhuǎn)效果。

實現(xiàn)方式

創(chuàng)建一個類并實現(xiàn)PageTransformer接口,重寫transformPage(View page, float position)方法。根據(jù)position參數(shù)的值來更改page視圖的屬性,如透明度、大小、旋轉(zhuǎn)角度等,以達到自定義的滑動效果。1WH28資訊網(wǎng)——每日最新資訊28at.com

示例代碼

透明漸變效果

public class AlphaPageTransformer implements ViewPager.PageTransformer {    @Override    public void transformPage(@NonNull View page, float position) {        page.setAlpha(1 - Math.abs(position));    }}

在transformPage方法中,根據(jù)position的絕對值來設(shè)置頁面的透明度,使頁面在滑動過程中透明度發(fā)生變化。1WH28資訊網(wǎng)——每日最新資訊28at.com

透明旋轉(zhuǎn)翻頁效果

public class RotatePageTransformer implements ViewPager.PageTransformer {    @Override    public void transformPage(@NonNull View page, float position) {        int pagerWidth = mViewPager.getWidth();        float horizontalOffsetBase = (pagerWidth - pagerWidth * 1.2f) / 2 / offscreenPageLimit + 45;        if (position >= offscreenPageLimit || position <= -1) {            page.setVisibility(View.GONE);        } else {            page.setVisibility(View.VISIBLE);        }        if (position >= 0) {            float translationX = (horizontalOffsetBase - page.getWidth()) * position;            page.setTranslationX(translationX);        }        if (position > -1 && position < 0) {            float rotation = position * 30;            page.setRotation(rotation);            page.setAlpha((position * position * position + 1));        } else if (position > offscreenPageLimit - 1) {            page.setAlpha((float) (1 - position + Math.floor(position)));        } else {            page.setRotation(0);            page.setAlpha(1);        }        if (position == 0) {            page.setScaleX(1.2f);            page.setScaleY(1.2f);        } else {            float scaleFactor = Math.min(1.2f - position * 0.1f, 1.2f);            page.setScaleX(scaleFactor);            page.setScaleY(scaleFactor);        }        ViewCompat.setElevation(page, (offscreenPageLimit - position) * 5);    }}

調(diào)用ViewPager的setPageTransformer(boolean reverseDrawingOrder, PageTransformer transformer)方法,設(shè)置實現(xiàn)的PageTransformer效果。1WH28資訊網(wǎng)——每日最新資訊28at.com

ViewPager viewPager = findViewById(R.id.view_pager);viewPager.setPageTransformer(true, new RotatePageTransformer());

圖片圖片1WH28資訊網(wǎng)——每日最新資訊28at.com

1WH28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-91682-0.htmlViewPager頁面滑動效果,自定義PageTransformer實現(xiàn)想要的變換效果

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Spring Boot中的六種API請求參數(shù)讀取方式

下一篇: 聊聊什么是微服務(wù),你看明白了嗎?

標簽:
  • 熱門焦點
  • 官方承諾:K60至尊版將會首批升級MIUI 15

    全新的MIUI 15今天也有了消息,在官宣了K60至尊版將會搭載天璣9200+處理器和獨顯芯片X7的同時,Redmi給出了官方承諾,K60至尊重大更新首批升級,會首批推送MIUI 15。也就是說雖然
  • K8S | Service服務(wù)發(fā)現(xiàn)

    一、背景在微服務(wù)架構(gòu)中,這里以開發(fā)環(huán)境「Dev」為基礎(chǔ)來描述,在K8S集群中通常會開放:路由網(wǎng)關(guān)、注冊中心、配置中心等相關(guān)服務(wù),可以被集群外部訪問;圖片對于測試「Tes」環(huán)境或者
  • 得物效率前端微應(yīng)用推進過程與思考

    一、背景效率工程隨著業(yè)務(wù)的發(fā)展,組織規(guī)模的擴大,越來越多的企業(yè)開始意識到協(xié)作效率對于企業(yè)團隊的重要性,甚至是決定其在某個行業(yè)競爭中突圍的關(guān)鍵,是企業(yè)長久生存的根本。得物
  • Python異步IO編程的進程/線程通信實現(xiàn)

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現(xiàn)方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯(lián)網(wǎng)企業(yè)調(diào)整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 阿里大調(diào)整

    來源:產(chǎn)品劉有媒體報道稱,近期淘寶天貓集團啟動了近年來最大的人力制度改革,涉及員工績效、層級體系等多個核心事項,目前已形成一個初步的&ldquo;征求意見版&rdquo;:1、取消P序列
  • 到手價3099元起!iQOO Neo8 Pro今日首銷:安卓性能最強旗艦

    5月23日,iQOO如期舉行了新品發(fā)布會,全新的iQOO Neo8系列也正式與大家見面,包含iQOO Neo8和iQOO Neo8 Pro兩個版本,其中標準版搭載高通驍龍8+,而Pro版更
  • OPPO K11采用全方位護眼屏:三大護眼能力減輕視覺疲勞

    日前OPPO官方宣布,全新的OPPO K11將于7月25日正式發(fā)布,將主打旗艦影像,和同檔位競品相比,其最大的賣點就是將配備索尼IMX890主攝,堪稱是2000檔位影像表
  • Counterpoint :OPPO雙旗艦戰(zhàn)略全面落地 高端產(chǎn)品銷量增長22%

    2023年6月30日,全球行業(yè)分析機構(gòu)Counterpoint Research發(fā)布的《中國智能手機高端市場白皮書》顯示,中國智能手機品牌正在尋求高質(zhì)量發(fā)展,中國高端智能
Top 主站蜘蛛池模板: 怀安县| 和龙市| 宾阳县| 定兴县| 盱眙县| 辛集市| 容城县| 胶南市| 简阳市| 枣强县| 浦江县| 奉新县| 布拖县| 西充县| 宿州市| 白银市| 渑池县| 天门市| 鱼台县| 滕州市| 依安县| 安徽省| 绥化市| 赫章县| 安阳县| 裕民县| 方城县| 河间市| 澎湖县| 桃源县| 溧阳市| 浦城县| 岳普湖县| 凤庆县| 来宾市| 青龙| 鹰潭市| 五河县| 富锦市| 富川| 包头市|