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

Android仿google now效果的呼吸按鈕

 更新時(shí)間:2019年08月22日 11:21:59   作者:VitoZhangDeveloper  
這篇文章主要為大家詳細(xì)介紹了Android仿google now效果的呼吸按鈕簡(jiǎn)單實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

呼吸按鈕是我最早接觸到為view添加動(dòng)畫效果的需求,剛剛參加安卓開發(fā)工作,要求設(shè)計(jì)一個(gè)好看的語(yǔ)音按鈕效果,就有了這個(gè)成果,但是后來又改方案了,所以我也就沒有對(duì)該按鈕進(jìn)行封裝為一個(gè)自定義按鈕,本文主要是展示一種合理組合利用animation來實(shí)現(xiàn)一些好看的動(dòng)畫效果,只是一種思路。

先上圖:

實(shí)現(xiàn)該效果,重要的是我們要如何實(shí)現(xiàn)這種動(dòng)態(tài)的呼吸效果,因?yàn)槭且环N非線性運(yùn)動(dòng),直接實(shí)現(xiàn)起來有些麻煩,特別是對(duì)于像我剛剛?cè)胄械牟锁B來說。但是幸好,android的SDK提供了一種叫interpolator屬性,通過設(shè)置該屬性為accelerate_decelerate_interpolato可以實(shí)現(xiàn)加速效果,使動(dòng)畫看起來更豐滿,更具活力。

首先,我們需要三個(gè)anim文件。

進(jìn)入效果anim:

<?xml version="1.0" encoding="utf-8"?>
  <set xmlns:android="http://schemas.android.com/apk/res/android"
  android:interpolator="@android:anim/decelerate_interpolator"
  android:shareInterpolator="true">
  <scale 
    android:fromXScale="0.0"
    android:toXScale="0.9"
    android:fromYScale="0.0"
    android:toYScale="0.9"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="1000"/>
</set>

呼吸效果anim:

<?xml version="1.0" encoding="utf-8"?>
  <set xmlns:android="http://schemas.android.com/apk/res/android"
  android:interpolator="@android:anim/accelerate_decelerate_interpolator"
  android:shareInterpolator="true">
  <scale
    android:fromXScale="0.9"
    android:toXScale="1.0"
    android:fromYScale="0.9"
    android:toYScale="1.0"
    android:duration="1500"
    android:pivotX="50%"
    android:pivotY="50%"
    android:repeatCount="infinite"
    android:repeatMode="reverse"/>
</set>

退出效果anim:

 <?xml version="1.0" encoding="utf-8"?>
  <set xmlns:android="http://schemas.android.com/apk/res/android"
  android:interpolator="@android:anim/accelerate_interpolator"
  android:shareInterpolator="true">
  <scale 
    android:fromXScale="0.95"
    android:toXScale="0.0"
    android:fromYScale="0.95"
    android:toYScale="0.0"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="1000"/>
</set>

然后是Java代碼,代碼很簡(jiǎn)單,在MainActivity中,對(duì)按鈕設(shè)置點(diǎn)擊事件,喚起開始動(dòng)畫->執(zhí)行呼吸動(dòng)畫->喚起結(jié)束對(duì)話。同時(shí)對(duì)開始和接收的動(dòng)畫進(jìn)行監(jiān)聽,執(zhí)行完畢后完成顯示和隱藏背景的設(shè)置。部分代碼:

private void initView() {
    voice.setOnClickListener(new View.OnClickListener() {
      @Override
      public void onClick(View v) {
        if (!isVisible) {
          back.startAnimation(animationIn);
          isVisible = true;
        } else {
          back.startAnimation(animationExit);
          isVisible = false;
        }

      }
    });

}

Animtion動(dòng)畫相關(guān)部分代碼

 //動(dòng)畫監(jiān)聽
animationIn.setAnimationListener(new Animation.AnimationListener() {

      @Override
      public void onAnimationStart(Animation animation) {

      }

      @Override
      public void onAnimationRepeat(Animation animation) {

      }

      @Override
      public void onAnimationEnd(Animation animation) {
        back.startAnimation(animationVoice);  //開始呼吸動(dòng)畫
        back.setVisibility(View.VISIBLE);
      }
    });

    animationExit.setAnimationListener(new Animation.AnimationListener() {
      @Override
      public void onAnimationStart(Animation animation) {

      }

      @Override
      public void onAnimationEnd(Animation animation) {
        back.clearAnimation(); //清除動(dòng)畫
        back.setVisibility(View.INVISIBLE);
      }

      @Override
      public void onAnimationRepeat(Animation animation) {

      }
    });

好了,一個(gè)呼吸按鈕就成了,有興趣的可以把呼吸按鈕封裝一下,做成一個(gè)自定義按鈕來使用。最后附上github鏈接:BreathButton  

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

相關(guān)文章

  • Android基礎(chǔ)之Activity生命周期

    Android基礎(chǔ)之Activity生命周期

    activity類是Android 應(yīng)用生命周期的重要部分。在系統(tǒng)中的Activity被一個(gè)Activity棧所管理。當(dāng)一個(gè)新的Activity啟動(dòng)時(shí),將被放置到棧頂,成為運(yùn)行中的Activity,前一個(gè)Activity保留在棧中,不再放到前臺(tái),直到新的Activity退出為止。
    2016-05-05
  • Android編程之計(jì)時(shí)器Chronometer簡(jiǎn)單示例

    Android編程之計(jì)時(shí)器Chronometer簡(jiǎn)單示例

    這篇文章主要介紹了Android計(jì)時(shí)器Chronometer簡(jiǎn)單用法,結(jié)合實(shí)例形式分析了Android計(jì)時(shí)器Chronometer的定義、事件響應(yīng)及界面布局相關(guān)操作技巧,需要的朋友可以參考下
    2017-08-08
  • mui.init()與mui.plusReady()區(qū)別和關(guān)系

    mui.init()與mui.plusReady()區(qū)別和關(guān)系

    給大家分享一下在使用MUI進(jìn)行APP開發(fā)的時(shí)候,mui.init()與mui.plusReady()區(qū)別以及使用上不同之處。
    2017-11-11
  • Gradle配置教程之自定義APK名稱與輸出路徑

    Gradle配置教程之自定義APK名稱與輸出路徑

    Gradle是一個(gè)基于JVM的富有突破性構(gòu)建工具,下面這篇文章主要給大家介紹了關(guān)于Gradle配置教程之自定義APK名稱與輸出路徑的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-03-03
  • Flutter?web?bridge?通信總結(jié)分析詳解

    Flutter?web?bridge?通信總結(jié)分析詳解

    這篇文章主要為大家介紹了Flutter?web?bridge?通信總結(jié)分析詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-01-01
  • Android解決getExternalStorageDirectory在29后廢棄問題(推薦)

    Android解決getExternalStorageDirectory在29后廢棄問題(推薦)

    這篇文章主要介紹了Android解決getExternalStorageDirectory在29后廢棄問題(推薦),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Flutter StreamBuilder組件實(shí)現(xiàn)局部刷新示例講解

    Flutter StreamBuilder組件實(shí)現(xiàn)局部刷新示例講解

    日常使用最多的局部刷新為Provider狀態(tài)管理 Selector,今天分享flutter框架自帶的StreamBuilder組件,該組件可做到局部刷新,使用簡(jiǎn)單且輕便
    2022-11-11
  • Android實(shí)現(xiàn)長(zhǎng)按圓環(huán)動(dòng)畫View效果的思路代碼

    Android實(shí)現(xiàn)長(zhǎng)按圓環(huán)動(dòng)畫View效果的思路代碼

    這篇文章主要介紹了Android實(shí)現(xiàn)長(zhǎng)按圓環(huán)動(dòng)畫View效果,本文給大家分享實(shí)現(xiàn)思路,通過示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • Android解析json數(shù)據(jù)示例代碼(三種方式)

    Android解析json數(shù)據(jù)示例代碼(三種方式)

    本篇文章主要介紹了Android解析json數(shù)據(jù)示例代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Android中SharedPreference詳解及簡(jiǎn)單實(shí)例

    Android中SharedPreference詳解及簡(jiǎn)單實(shí)例

    這篇文章主要介紹了 Android中SharedPreference詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09

最新評(píng)論

龙游县| 祁阳县| 宜阳县| 阿拉善右旗| 苍梧县| 资阳市| 弋阳县| 讷河市| 绥江县| 明溪县| 吴堡县| 恩平市| 城市| 汝南县| 清苑县| 沂水县| 临夏县| 绥化市| 晋宁县| 罗源县| 阿拉尔市| 丽江市| 巴楚县| 赣榆县| 岳普湖县| 丰原市| 安西县| 时尚| 景谷| 西吉县| 绥阳县| 遵化市| 双江| 沾化县| 台北市| 自治县| 武功县| 遂宁市| 镇江市| 忻城县| 松滋市|