網站首頁 編程語言 正文
介紹:
淡入淡出動畫(也稱為“疊化”)逐漸淡出一個 View 或 ViewGroup,同時淡入另一個。此動畫適用于您希望在應用中切換內容或視圖的情況。
下面我們通過一個例子來創建使用淡入淡出動畫。
首先創建一個簡單的布局activity_short_anim.xml
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".ShortAnimActivity"> <ScrollView android:id="@+id/scrollView" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView style="?android:textAppearanceMedium" android:layout_width="match_parent" android:layout_height="wrap_content" android:lineSpacingMultiplier="1.2" android:padding="16dp" android:text="@string/lorem_ipsum" /> </ScrollView> <ProgressBar android:id="@+id/progressBar" style="?android:progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" /> </FrameLayout>
接下來在對應的Activity中實現相應的功能ShortAnimActivity類
public class ShortAnimActivity extends AppCompatActivity { private ScrollView scrollView; private ProgressBar progressBar; private int shortAnimationDuration; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_short_anim); scrollView = findViewById(R.id.scrollView); progressBar = findViewById(R.id.progressBar); scrollView.setVisibility(View.GONE); //長動畫的持續時間為500ms shortAnimationDuration = getResources().getInteger(android.R.integer.config_longAnimTime); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.animation_menu, menu); return true; } @Override public boolean onOptionsItemSelected(@NonNull MenuItem item) { switch (item.getItemId()) { case R.id.cross: crossFade(); break; default: break; } return super.onOptionsItemSelected(item); } private void crossFade() { //將內容視圖設置為0%不透明(就是透明的意思,不可見的狀態),正常顯示的為100%不透明可見 // 以便在動畫期間可見 scrollView.setAlpha(0f); scrollView.setVisibility(View.VISIBLE); //將內容視圖設置為100%不透明,并清除視圖上的任何動畫監聽器 scrollView.animate() .alpha(1f) .setDuration(shortAnimationDuration) .setListener(null); //將動畫視圖設置為0%不透明,動畫結束后,將視圖隱藏 progressBar.animate() .alpha(0f) .setDuration(shortAnimationDuration) .setListener(new AnimatorListenerAdapter() { @Override public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); progressBar.setVisibility(View.GONE); } }); } }
通過點擊選項菜單,實現一個淡入淡出的效果,我設置的是500ms的一個動畫時間,大家可能看的不太明顯,但是實際開發中就是這么一個效果,動畫時間不會太長。
效果如圖所示:
以上就是淡入淡出動畫的簡單使用~
原文鏈接:https://blog.csdn.net/lu202032/article/details/121779559
相關推薦
- 2022-03-14 關于VS+QT5應用程序換圖標的解決方案_C 語言
- 2024-03-03 layui彈窗編輯表單清空
- 2022-07-09 Python如何將數字變成帶逗號的千分位_python
- 2022-07-09 Pytorch從0實現Transformer的實踐_python
- 2023-04-14 拯救強迫癥Android?Builder模式_Android
- 2022-02-21 css 改變input光標顏色
- 2023-01-13 Go簡單實現協程方法_Golang
- 2022-08-02 Golang中panic與recover的區別_Golang
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支