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

Flutter使用AnimatedOpacity實現(xiàn)圖片漸現(xiàn)動畫

 更新時間:2022年03月23日 16:43:34   作者:島上碼農  
其實在Flutter中提供了一些封裝好的動畫組件,以便我們快速應用。本文將利用其中的AnimatedOpacity組件實現(xiàn)圖片漸現(xiàn)動畫效果,需要的可以參考一下

前言

我們介紹了幾篇 Flutter 的動畫控制類,相信大家對動畫也有了一定的了解,可以通過這些基礎的動畫控制類實現(xiàn)自己想要的動畫效果。在 Flutter 中也提供了一些封裝好的動畫組件,以便我們快速應用。本篇我們來介紹漸現(xiàn)效果 —— AnimatedOpacity。

AnimatedOpacity 簡介

顧名思義,AnimatedOpacity 就是用于動態(tài)展示組件的透明度。實際上,它實現(xiàn)的是將其子組件的透明度動態(tài)地從初始值過渡到指定值的動畫效果。AnimatedOpacity的構造方法如下:

const?AnimatedOpacity({
??Key??key,
??this.child,
??required?this.opacity,
??Curve?curve?=?Curves.linear,
??required?Duration?duration,
??VoidCallback??onEnd,
??this.alwaysIncludeSemantics?=?false,
})?

對應的參數(shù)為:

  • child:要控制透明度的子組件;
  • opacity:最終的透明度值,需要是介于0-1之間的值;
  • curve:動效曲線,默認是線性的Curves.linear,可以使用 Curves 來構建曲線效果;
  • duration:動效時長;
  • alwaysIncludeSemantics:是否總是包含語義信息,默認是 false。這個主要是用于輔助訪問的,如果是 true,則不管透明度是多少,都會顯示語義信息(可以輔助朗讀),這對于視障人員來說會更友好。
  • onEnd:動畫結束回調方法。

AnimatedOpacity 應用

應用來說就很簡單了,只需要把需要漸現(xiàn)的組件作為 AnimatedOpacity 的子組件,然后在發(fā)生事件到時候更改透明度即可。我們實現(xiàn)下面的圖片漸現(xiàn)效果。

透明度漸變.gif

實現(xiàn)代碼如下:

class?AnimatedOpacityDemo?extends?StatefulWidget?{
??const?AnimatedOpacityDemo({Key??key})?:?super(key:?key);

??@override
??_AnimatedOpacityDemoState?createState()?=>?_AnimatedOpacityDemoState();
}

class?_AnimatedOpacityDemoState?extends?State<AnimatedOpacityDemo>?{
??var?opacity?=?0.0;
??@override
??Widget?build(BuildContext?context)?{
????return?Scaffold(
??????appBar:?AppBar(
????????title:?Text('AnimatedOpacity?動畫'),
??????),
??????body:?Center(
????????child:?Stack(
??????????alignment:?Alignment.center,
??????????children:?[
????????????Text('小姐姐在哪'),
????????????AnimatedOpacity(
??????????????duration:?Duration(seconds:?3),
??????????????opacity:?opacity,
??????????????child:?ClipOval(
????????????????child:?Image.asset(
??????????????????'images/beauty.jpeg',
??????????????????width:?300,
??????????????????height:?300,
????????????????),
??????????????),
??????????????curve:?Curves.ease,
????????????),
??????????],
????????),
??????),
??????floatingActionButton:?FloatingActionButton(
????????child:?Text(
??????????opacity?==?0???'Show'?:?'Hide',
??????????style:?TextStyle(
????????????color:?Colors.white,
??????????),
??????????textAlign:?TextAlign.center,
????????),
????????onPressed:?()?{
??????????setState(()?{
????????????opacity?=?opacity?==?0???1.0?:?0.0;
??????????});
????????},
??????),
????);
??}
}

圖片漸現(xiàn)過渡

在相冊類應用中,我們經常會看到一張圖片逐漸漸變?yōu)榱硪粡垐D片,從而提供更好的圖片瀏覽體驗,甚至造成一種時光如梭的感覺。這種效果可以使用 AnimatedOpactity 實現(xiàn)。將一張圖片的透明度逐漸降低到0,另一張的透明度逐漸升高到1,從而可以實現(xiàn)圖片漸變過渡的效果,例如下面的效果,是不是感覺小姐姐由清純風變成高冷風的過渡更自然?

小姐姐風格變化.gif

實現(xiàn)的方式其實就是使用 Stack將兩張圖片堆疊在一起,然后讓兩張圖片的透明度往相反的方向變化就可以實現(xiàn)這樣的效果了,代碼如下:

class?_SwtichImageDemoState?extends?State<SwtichImageDemo>?{
??var?opacity1?=?1.0;
??var?opacity2?=?0.0;

??@override
??Widget?build(BuildContext?context)?{
????return?Scaffold(
??????appBar:?AppBar(
????????title:?Text('圖片切換'),
????????brightness:?Brightness.dark,
????????backgroundColor:?Colors.black,
??????),
??????backgroundColor:?Colors.black,
??????body:?Center(
????????child:?Stack(
??????????alignment:?Alignment.center,
??????????children:?[
????????????AnimatedOpacity(
??????????????duration:?Duration(milliseconds:?5000),
??????????????opacity:?opacity1,
??????????????child:?ClipOval(
????????????????child:?Image.asset(
??????????????????'images/beauty.jpeg',
??????????????????width:?300,
??????????????????height:?300,
????????????????),
??????????????),
??????????????curve:?Curves.ease,
????????????),
????????????AnimatedOpacity(
??????????????duration:?Duration(milliseconds:?5000),
??????????????opacity:?opacity2,
??????????????child:?ClipOval(
????????????????child:?Image.asset(
??????????????????'images/beauty2.jpeg',
??????????????????width:?300,
??????????????????height:?300,
????????????????),
??????????????),
??????????????curve:?Curves.ease,
????????????),
??????????],
????????),
??????),
??????floatingActionButton:?FloatingActionButton(
????????child:?Text(
??????????'變',
??????????style:?TextStyle(
????????????color:?Colors.white,
??????????),
??????????textAlign:?TextAlign.center,
????????),
????????onPressed:?()?{
??????????setState(()?{
????????????opacity1?=?0.0;
????????????opacity2?=?1.0;
??????????});
????????},
??????),
????);
??}
}

總結

本篇介紹了 Flutter 自帶的漸現(xiàn)動畫組件 AnimatedOpacity 的使用,借助 AnimatedOpacity 可以簡化漸現(xiàn)動畫的實現(xiàn),比如一個組件的消失動畫,兩張圖片的漸現(xiàn)切換過渡等效果。

以上就是Flutter使用AnimatedOpacity實現(xiàn)圖片漸現(xiàn)動畫的詳細內容,更多關于Flutter圖片漸現(xiàn)動畫的資料請關注腳本之家其它相關文章!

相關文章

  • Android 實現(xiàn)帶頭部文字輸入框的自定義控件

    Android 實現(xiàn)帶頭部文字輸入框的自定義控件

    這篇文章主要介紹了Android 實現(xiàn)帶頭部文字輸入框的自定義控件,幫助大家更好的理解和學習使用Android,感興趣的朋友可以了解下
    2021-04-04
  • 關于Android添加fragment后版本不兼容問題

    關于Android添加fragment后版本不兼容問題

    這篇文章主要介紹了Android添加fragment后版本不兼容問題的解決方法,需要的朋友可以參考下
    2017-12-12
  • 非常實用的側滑刪除控件SwipeLayout

    非常實用的側滑刪除控件SwipeLayout

    這篇文章主要為大家詳細介紹了非常實用的側滑刪除控件SwipeLayout,類似于QQ側滑點擊刪除效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-08-08
  • Android開發(fā)之使用150行代碼實現(xiàn)滑動返回效果

    Android開發(fā)之使用150行代碼實現(xiàn)滑動返回效果

    本文給大家分享Android開發(fā)之使用150行代碼實現(xiàn)滑動返回效果的代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友參考下吧
    2019-05-05
  • android輸入框內容改變的監(jiān)聽事件實例

    android輸入框內容改變的監(jiān)聽事件實例

    下面小編就為大家分享一篇android輸入框內容改變的監(jiān)聽事件實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-02-02
  • 4種Android屏幕自適應解決方案

    4種Android屏幕自適應解決方案

    在開發(fā)android項目的時候,我們常常會考慮這樣的問題:為不同的手機屏幕顯示出最佳的界面,以提升用戶的體驗。本文介紹的是4種Android屏幕自適應解決方案,有興趣的可以了解一下。
    2016-10-10
  • 深入解析Android中的setContentView加載布局原理

    深入解析Android中的setContentView加載布局原理

    在日常開發(fā)Android中setContentView是必不可少的一部分,下面這篇文章主要給大家介紹了關于Android中setContentView的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習下吧。
    2017-09-09
  • 詳解Android應用中屏幕尺寸的獲取及dp和px值的轉換

    詳解Android應用中屏幕尺寸的獲取及dp和px值的轉換

    這篇文章主要介紹了Android應用中屏幕尺寸的獲取及dp和px值的轉換方法,這里主要介紹將dp轉化為px值的例子,需要的朋友可以參考下
    2016-03-03
  • 詳解Android 全局彈出對話框SYSTEM_ALERT_WINDOW權限

    詳解Android 全局彈出對話框SYSTEM_ALERT_WINDOW權限

    本篇文章主要介紹了詳解Android 全局彈出對話框SYSTEM_ALERT_WINDOW權限,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-03-03
  • Android在Kotlin中更好地使用LitePal

    Android在Kotlin中更好地使用LitePal

    今天小編就為大家分享一篇關于Android在Kotlin中更好地使用LitePal,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-10-10

最新評論

通辽市| 克什克腾旗| 墨脱县| 安国市| 灵台县| 江津市| 丰镇市| 遵化市| 湘潭县| 台南市| 澎湖县| 衢州市| 德兴市| 个旧市| 津南区| 偏关县| 吴川市| 巴楚县| 庆阳市| 开远市| 神木县| 都江堰市| 布尔津县| 互助| 辛集市| 灵寿县| 康马县| 库车县| 巴里| 扶余县| 城市| 泊头市| 凤庆县| 灵丘县| 宁阳县| 崇义县| 手游| 浑源县| 佛冈县| 南丰县| 丰镇市|