1. 程式人生 > >ObjectAnimator(屬性動畫)

ObjectAnimator(屬性動畫)

package com.example.animator;

import android.animation.Animator;
import android.animation.AnimatorListenerAdapter;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import 
android.widget.Button; import android.widget.ImageView; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private Button but; private ImageView img; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main
); //初始化控制元件 but = (Button) findViewById(R.id.but); img = (ImageView) findViewById(R.id.img); //圖片點選事件 img.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(MainActivity.this, "我在這裡", Toast.LENGTH_SHORT
).show(); } }); //演示屬性動畫 but.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { //建立平移動畫 ObjectAnimator translationX = ObjectAnimator.ofFloat(img,"translationX",0,300); //建立透明動畫 ObjectAnimator alpha = ObjectAnimator.ofFloat(img, "alpha", 1.0f, 0f); //動畫集合 AnimatorSet set = new AnimatorSet(); //新增動畫 set.play(translationX).with(alpha); //動畫耗時 set.setDuration(5000); //開啟 set.start(); //動畫監聽 set.addListener(new AnimatorListenerAdapter() { @Override//動畫結束時 public void onAnimationEnd(Animator animation) { super.onAnimationEnd(animation); } @Override public void onAnimationRepeat(Animator animation) { super.onAnimationRepeat(animation); } @Override//動畫開始時 public void onAnimationStart(Animator animation) { super.onAnimationStart(animation); } }); } }); }

}

--------------------------------xml檔案-----------------------------

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 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"
android:orientation="vertical"
tools:context="com.example.animator.MainActivity">

   <Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="動畫演示"
android:id="@+id/but"/>
    <ImageView
android:layout_marginTop="50dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/img"
android:src="@mipmap/ic_launcher"/>




</LinearLayout>

相關推薦

ObjectAnimator屬性動畫

package com.example.animator; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; import android.animat

Android中的動畫動畫、補間動畫屬性動畫

總的來說,安卓動畫可以分為兩類,最初的傳統動畫和Android3.0之後的屬性動畫。 傳統動畫包括:幀動畫( Frame Animation)和補間動畫(Tweened Animation)。 下面來具體說一下各種動畫的使用及特點: 幀動畫:是最容易實

Android效能優化記憶體洩露優化靜態變數、單例模式、屬性動畫

記憶體洩露優化分為兩個方面,一方面是在開發過程中避免寫出有記憶體洩露的程式碼,另一方面是通過一些分析工具比如 MAT來找出潛在的記憶體洩露繼而解決。 一、靜態變數導致記憶體洩露。一般情況下靜態變數引用

AnimationDrawable動畫

1,AnimationDrawable(幀動畫) 【1】介紹和使用方法: 【2】在rec下建立drawable檔案。 【2】建立一個xml 檔案資源<animation-list > <?xml version="1.0" encoding="

《 常見演算法與資料結構》符號表ST4——二叉查詢樹刪除 動畫

符號表ST(4)——二叉查詢樹刪除 (附動畫) 本系列文章主要介紹常用的演算法和資料結構的知識,記錄的是《Algorithms I/II》課程的內容,採用的是“演算法(第4版)”這本紅寶書作為

使用系統提供的AVFoundation 實現二維碼掃描動畫

注意這裡的掃描必須真機測試 模擬器上是看不出來效果的 #import "ViewController.h" #import <AVFoundation/AVFoundation.h> @interface ViewController ()<AVCa

android自定義控制元件之圓形進度條動畫

首先貼上圖片: 額,感覺還行吧,就是進度條的顏色醜了點,不過咱是程式設計師,不是美工,配色這種問題當然不在考慮範圍之內了 下面說重點,如何來寫一個這樣的自定義控制元件。 首先,需要有一個灰色的底圖,來作為未填充時的進度條; 然後,根據傳入的當前進度值,繪製填充時的進度圓

MeshEditor 網格頂點動畫變形動畫

原始碼已上傳至github,並持續更新,連結請看底部。(本帖跟隨github持續更新)網格頂點動畫(變形動畫)是針對於物體的形狀可以隨意變換並記錄為關鍵幀的動畫,雖然模型的頂點資料還是應該交給GPU繪製才是正道,CPU重新整理模型頂點始終是個吃力不討好的事(不過我好像至始至終

《 常見演算法與資料結構》平衡查詢樹1—— 2-3查詢樹動畫

本系列文章主要介紹常用的演算法和資料結構的知識,記錄的是《Algorithms I/II》課程的內容,採用的是“演算法(第4版)”這本紅寶書作為學習教材的,語言是java。這本書的名氣我不用多說吧?豆瓣評分9.4,我自己也認為是極好的學習演算法的書籍。

Android動畫-Frame Animation動畫

Android動畫主要分為以下三類: Tweened animation(補間動畫)- 在android3.0(API11)之前支援,該動畫僅僅支援對View操作,而且View在做動畫的時候,View相應的實際屬性值並沒有發生改變,例如:一個Button起始位置left,to

res-----不同圖片實現動畫效果動畫

1、準備幾張圖片(可命名為a1-a6) 2、在drawable資料夾下新建xml,內容如下 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.androi

《常見演算法和資料結構》元素排序(1)——簡單排序動畫

元素排序(1)——簡單排序 本系列文章主要介紹常用的演算法和資料結構的知識,記錄的是《Algorithms I/II》課程的內容,採用的是“演算法(第4版)”這本紅寶書作為學習教材的,語言是

android 動畫 從view頂部退出、進入系列動畫

<translate xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/accelerate_interpolator"

javascript 面向物件屬性型別-筆記

 屬性型別:   屬性在建立時都帶一些特徵值,javascript通過這些特殊值定義他們行為,javascript中有兩種屬性:資料屬性,           訪問器屬性   1.資料屬性   資料屬性包含一個數據的值的位置。在這個位

MFC 的ActiveX控制元件開發屬性

屬性頁 屬性頁使 ActiveX 控制元件使用者得以檢視和更改 ActiveX 控制元件屬性。可通過呼叫控制元件屬性對話方塊訪問這些屬性。該對話方塊包含一個或多個屬性頁,這些屬性頁提供自定義的圖形介面用於檢視和編輯控制元件屬性。 使用預設屬性頁 建立ActiveX控制元件專

實現網路請求時特定的載入動畫動畫

第一篇部落格,有點小小的激動。有些做過的東西當時可能記得很清楚,但是時間久了就會慢慢忘記,所以才決定開始記錄一些。先寫個最簡單的載入動畫。首先來看一下效果圖,就如中間哪裡書翻頁的效果。此動畫是用幀動畫來實現的。幀動畫是順序播放一組預先定義好的圖片,類似與電影播放。系統提供了A

Fresco載入gif實現圓角動畫

/** * 將gif處理成圓形 * * @param imageView * @param url * @param reqWidth * @param reqHeight */ publ

android自定義環形統計圖動畫

一、測試截圖 二、實現原理  package com.freedomanlib; import java.util.Timer; import java.util.TimerTask; import android.annotation.SuppressLint;

【Android動畫九章】-AlphaAnimation漸變動畫

對於傳統動畫,Android提供了兩類動畫,即Tween(補間動畫)和Frame(幀動畫)。Tween動畫提供了四種動畫形式,即AlphaAnimation(漸變動畫)、RotateAnimation(旋轉動畫)、ScaleAnimation(尺寸動畫)、Tra

自定義PopupWindow彈出框帶有動畫和呼叫相簿相機佈局

使用PopupWindow來實現彈出框,並且帶有動畫效果 效果一:(第二張圖)首先自定義PopupWindow public class LostPopupWindow extends PopupWindow { public Lost lost;