欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android仿google now效果的呼吸按鈕

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

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

先上圖:

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

首先,我們需要三個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代碼,代碼很簡單,在MainActivity中,對按鈕設(shè)置點(diǎn)擊事件,喚起開始動畫->執(zhí)行呼吸動畫->喚起結(jié)束對話。同時對開始和接收的動畫進(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動畫相關(guān)部分代碼

 //動畫監(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);  //開始呼吸動畫
        back.setVisibility(View.VISIBLE);
      }
    });

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

      }

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

      @Override
      public void onAnimationRepeat(Animation animation) {

      }
    });

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

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

相關(guān)文章

  • Android實現(xiàn)上傳頭像

    Android實現(xiàn)上傳頭像

    這篇文章主要為大家詳細(xì)介紹了Android實現(xiàn)上傳頭像,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-05-05
  • Android 中 Fragment的使用大全

    Android 中 Fragment的使用大全

    通常地 fragment做為宿主activity UI的一部分, 被作為activity整個view hierarchy的一部分被嵌入。本篇文章給大家介紹android fragment使用,需要的朋友一起看看吧
    2015-10-10
  • 兩種Android打電話實現(xiàn)方法

    兩種Android打電話實現(xiàn)方法

    這篇文章主要為大家詳細(xì)介紹了兩種Android打電話實現(xiàn)方法,具有一定的實用性,感興趣的小伙伴們可以參考一下
    2016-08-08
  • Rxjava+Retrofit+Okhttp進(jìn)行網(wǎng)絡(luò)訪問及數(shù)據(jù)解析

    Rxjava+Retrofit+Okhttp進(jìn)行網(wǎng)絡(luò)訪問及數(shù)據(jù)解析

    這篇文章主要介紹了Rxjava+Retrofit+Okhttp進(jìn)行網(wǎng)絡(luò)訪問及數(shù)據(jù)解析,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,感興趣的小伙伴可以參考一下
    2022-08-08
  • Android編程基于自定義View實現(xiàn)絢麗的圓形進(jìn)度條功能示例

    Android編程基于自定義View實現(xiàn)絢麗的圓形進(jìn)度條功能示例

    這篇文章主要介紹了Android編程基于自定義View實現(xiàn)絢麗的圓形進(jìn)度條功能,結(jié)合實例形式詳細(xì)分析了Android自定義view實現(xiàn)圓形進(jìn)度條的具體步驟與相關(guān)操作技巧,需要的朋友可以參考下
    2017-01-01
  • Android開發(fā)重寫Animation實現(xiàn)下拉圖片后彈射回去效果示例

    Android開發(fā)重寫Animation實現(xiàn)下拉圖片后彈射回去效果示例

    這篇文章主要介紹了Android開發(fā)重寫Animation實現(xiàn)下拉圖片后彈射回去效果,結(jié)合實例形式分析了Android自定義類繼承Animation實現(xiàn)圖片彈射效果的相關(guān)操作技巧,需要的朋友可以參考下
    2017-10-10
  • Android入門教程之Picasso框架

    Android入門教程之Picasso框架

    本文會先介紹Picasso的基本使用方法,讓您快速上手Picasso。后面我們分享實現(xiàn)ListView顯示網(wǎng)絡(luò)圖片的實例,從源碼角度詳細(xì)分析它的實現(xiàn),有需要的可以參考借鑒。
    2016-08-08
  • Android中asset和raw的區(qū)別詳解

    Android中asset和raw的區(qū)別詳解

    本文重點(diǎn)給大家介紹android中asset和raw的區(qū)別,以及在使用過程中需要注意點(diǎn),非常不錯,具有參考借鑒價值,感興趣的朋友一起看下吧
    2016-07-07
  • Android編程實現(xiàn)基于局域網(wǎng)udp廣播自動建立socket連接的方法

    Android編程實現(xiàn)基于局域網(wǎng)udp廣播自動建立socket連接的方法

    這篇文章主要介紹了Android編程實現(xiàn)基于局域網(wǎng)udp廣播自動建立socket連接的方法,涉及Android使用udp廣播實現(xiàn)socket通訊的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-11-11
  • Android中TabLayout添加小紅點(diǎn)的示例代碼

    Android中TabLayout添加小紅點(diǎn)的示例代碼

    本篇文章主要介紹了Android中TabLayout添加小紅點(diǎn)的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12

最新評論