亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android怎么用動畫顯示或隱藏視圖

發布時間:2022-01-17 12:03:35 來源:億速云 閱讀:147 作者:iii 欄目:開發技術

這篇文章主要介紹“Android怎么用動畫顯示或隱藏視圖”,在日常操作中,相信很多人在Android怎么用動畫顯示或隱藏視圖問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android怎么用動畫顯示或隱藏視圖”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

    一、需求背景

    有時候,我們需要在屏幕上顯示新的信息,同時移除舊的信息,一般情況下我們通過VISIBILITY或者GONE來對需要顯示或者隱藏的視圖進行設置,這樣做的壞處是顯示或者隱藏的動作變化非常突兀,而且有時候變化很快導致用戶無法注意到這些變化。這時就可以使用動畫顯示或者隱藏視圖,通常情況下使用圓形揭露動畫,淡入淡出動畫或者卡片反轉動畫。

    二、創建淡入淡出動畫

    淡入淡出動畫會逐漸淡出一個View或者ViewGroup,同時淡入另一個。此動畫適合在應用中切換內容或者視圖的情況。這里使用ViewPropertyAnimator來創建這種動畫。

    下面的動畫是從進度指示器切換到某些內容文字的淡入淡出示例。

    1.創建布局文件

    <androidx.constraintlayout.widget.ConstraintLayout
              android:layout_width="match_parent"
              android:layout_height="wrap_content">
    
          <!--淡入淡出動畫-->
          <Button
                  android:id="@+id/btn_use_fade_in_fade_out_animator"
                  android:layout_width="0dp"
                  android:layout_height="wrap_content"
                  android:layout_marginHorizontal="10dp"
                  android:onClick="doClick"
                  android:text="@string/use_fade_in_fade_out_animator"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintTop_toTopOf="parent" />
    
          <androidx.constraintlayout.widget.ConstraintLayout
                  android:layout_width="0dp"
                  android:layout_height="0dp"
                  app:layout_constraintDimensionRatio="w,1:1"
                  app:layout_constraintLeft_toLeftOf="parent"
                  app:layout_constraintRight_toRightOf="parent"
                  app:layout_constraintTop_toBottomOf="@id/btn_use_fade_in_fade_out_animator">
    
              <TextView
                      android:id="@+id/tv_content"
                      android:layout_width="0dp"
                      android:layout_height="0dp"
                      android:padding="16dp"
                      android:text="@string/test_use_fade_in_fade_out_animator_text"
                      android:visibility="gone"
                      app:layout_constraintBottom_toBottomOf="parent"
                      app:layout_constraintLeft_toLeftOf="parent"
                      app:layout_constraintRight_toRightOf="parent"
                      app:layout_constraintTop_toTopOf="parent" />
    
              <!--進度條-->
              <ProgressBar
                      android:id="@+id/loading_progress"
                      
                      android:layout_width="wrap_content"
                      android:layout_height="wrap_content"
                      app:layout_constraintBottom_toBottomOf="parent"
                      app:layout_constraintLeft_toLeftOf="parent"
                      app:layout_constraintRight_toRightOf="parent"
                      app:layout_constraintTop_toTopOf="parent" />
    
          </androidx.constraintlayout.widget.ConstraintLayout>
    
    
      </androidx.constraintlayout.widget.ConstraintLayout>

    2.設置淡入淡出動畫

    對于需要淡入的動畫,首先將其可見性設置為GONE,這一點在布局文件中已經設置。在需要顯示淡入的View的時候,首先將其alpha設置為0,這樣可以保證View已經顯示但是不可見。分別設置淡入的動畫和淡出的動畫,淡入的動畫將其所在的View的alpha屬性從0變化到1,淡出的動畫將其所在的View的alpha屬性從1變化到0對于淡出動畫,在動畫執行完成后,將其的可見性設置為GONE,從而加快處理速度。

    3.代碼實現

    //開始執行淡入淡出動畫
        private fun crossFade() {
            //設置需要淡入的View的alpha為0,可見性為VISIBLE
            mBinding.tvContent.apply {
                alpha = 0f
                visibility = View.VISIBLE
                //通過動畫將透明度變為1.0
                animate()
                    .alpha(1.0f)
                    .setDuration(mShortAnimationDuration.toLong())
                    .start()
            }
    
            //設置需要淡出的動畫,將其alpha從1變為0,并通過監聽動畫執行事件,在動畫結束后將View的可見性設置為GONE
            mBinding.loadingProgress.animate()
                .alpha(0f)
                .setDuration(mShortAnimationDuration.toLong())
                .setListener(object : AnimatorListenerAdapter() {
                    override fun onAnimationEnd(animation: Animator?) {
                        super.onAnimationEnd(animation)
                        mBinding.loadingProgress.visibility = View.GONE
                    }
                })
                .start()
        }

    到此,關于“Android怎么用動畫顯示或隱藏視圖”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

    向AI問一下細節

    免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

    AI

    五峰| 大安市| 武汉市| 广东省| 慈利县| 吉安市| 东丰县| 宝鸡市| 红安县| 高阳县| 嘉善县| 长沙县| 科技| 老河口市| 华阴市| 阿克陶县| 宁波市| 新邵县| 谢通门县| 嫩江县| 仙居县| 永城市| 青岛市| 沅江市| 龙海市| 陈巴尔虎旗| 张北县| 行唐县| 梁河县| 来凤县| 灌云县| 昭苏县| 万州区| 金华市| 白银市| 汕头市| 民丰县| 大方县| 嘉兴市| 剑川县| 长乐市|