1. 程式人生 > >Android自定義檢視動畫(一)

Android自定義檢視動畫(一)

一)旋轉動畫(Rotate Animation):以一個按鈕檢視為例進行旋轉,點選按鈕觸發旋轉,有兩種方法可以實現,在程式碼中或在資原始檔中,效果是一樣的。

1)在程式碼中配置旋轉引數

		@Override
	        public void onClick(View v) {
         RotateAnimation ra=new RotateAnimation(0, 360, 100, 50); //繞畫素點為(100,50)的中心點360度旋轉
   //    RotateAnimation ra=new RotateAnimation(0,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF, 0.5f);  //以自身的百分之五十為中心旋轉360度             
		 ra.setDuration(2000);//旋轉時間為2s
                 v.startAnimation(ra);
                  


2)在資原始檔(xml)中配置旋轉引數

新建xml檔案,Resources Typed 選擇Tween Animation,Root Element 選擇rotate,命名為ra,注意這裡的pivotX和pivotY的值如果設定為百分數,就意味著以自身的百分之多少為中心進行旋轉;如果設定為整數值,代表以畫素點為旋轉中心

<?xml version="1.0" encoding="utf-8"?>
<rotate xmlns:android="http://schemas.android.com/apk/res/android"
     android:fromDegrees="0"
     android:toDegrees="360"
     android:pivotX="50%"
     android:pivotY="50%"
     android:duration="2000">
    

</rotate>

然後在程式碼中新增一行

v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.ra));


二)透明動畫(Alpha Animation):以一個按鈕檢視為例,點選後顯示透明動畫效果

1)在程式碼中配置

	                @Override
			public void onClick(View v) {
				AlphaAnimation aa=new AlphaAnimation(0, 1);//透明值從0到1
				aa.setDuration(2000);//時間為2S
			    v.startAnimation(aa);


2)在xml檔案裡配置

新建xml檔案,Resources Typed 選擇Tween Animation,Root Element 選擇alpha,命名為aa

<?xml version="1.0" encoding="utf-8"?>
<alpha  xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromAlpha="0"
    android:toAlpha="1"
    android:duration="2000">
</alpha>

然後在程式碼裡新增一行

v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.aa));

三)移動動畫(Translate Animation)

1)在程式碼中配置引數

	
			@Override
			public void onClick(View v) {
		         TranslateAnimation ta=new TranslateAnimation(0,200,0, 200);//相對於自己所在的位置往右和往下分別移動了200畫素
		              ta.setDuration(2000);
			      v.startAnimation(ta);


2)在xml中配置引數

新建xml檔案,Resources Typed 選擇Tween Animation,Root Element 選擇translate,命名為ta

<?xml version="1.0" encoding="utf-8"?>
<translate 
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:fromXDelta="0"
     android:toXDelta="200"
     android:fromYDelta="0"
     android:toYDelta="200"
     android:duration="2000">
    

</translate>

然後再程式碼中新增一句

v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this,R.anim.ta));

四)縮放動畫(Scale Animation)

1)在程式碼中配置引數,引數裡的1代表縮放之後回覆到和原來一樣大小

			@Override
			public void onClick(View v) {
        ScaleAnimation sa=new ScaleAnimation(0, 1,0,1);//預設的從左上角開始縮放,值為1代表恢復到原狀
//	ScaleAnimation sa=new ScaleAnimation(0, 1, 0, 1, 100, 50);//基於畫素點(100,50)進行縮放
//	ScaleAnimation sa=new ScaleAnimation(0, 1, 0, 1,Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);//基於自身的位置的0.5進行縮放		
        sa.setDuration(2000);	
	v.startAnimation(sa);

2)在xml中配置

新建xml檔案,Resources Typed 選擇Tween Animation,Root Element 選擇scale,命名為sa

<?xml version="1.0" encoding="utf-8"?>
<scale  xmlns:android="http://schemas.android.com/apk/res/android"
    android:fromXScale="0"
    android:toXScale="1"
    android:fromYScale="0"
    android:toYScale="1"
    android:pivotX="50%"
    android:pivotY="50%"
    android:duration="2000"
>    

</scale>

然後再程式碼中新增一行

v.startAnimation(AnimationUtils.loadAnimation(MainActivity.this, R.anim.sa));

  

相關推薦

Android定義檢視動畫(

一)旋轉動畫(Rotate Animation):以一個按鈕檢視為例進行旋轉,點選按鈕觸發旋轉,有兩種方法可以實現,在程式碼中或在資原始檔中,效果是一樣的。 1)在程式碼中配置旋轉引數 @Override public void onClick(Vie

Android 定義View(

前言:可是有時候我們總感覺官方定義的一些基本元件不夠用,自定義元件就不可避免了。那麼如何才能做到像官方提供的那些元件一樣用xml來定義他的屬性呢? 先總結下自定義View的步驟: 1、自定義View的屬性; 2、在View的構造方法中獲得自定義的屬性。 一、在re

android定義View(、正弦波水波紋

文章目錄 1、正弦曲線知識 2、靜態正弦曲線繪製 3、動態正弦曲線繪製 4、完整原始碼 1、正弦曲線知識 對這個初中知識遺忘了的可以先看看正弦曲線百度百科詞條方便加深理解。

Android定義view(,打造絢麗的驗證碼

前言:我相信信念的力量,信念可以支撐起一個人,一個名族,一個國家。正如“人沒有夢想和鹹魚有什麼區別”一樣,我有信念,有理想,所以我正在努力向著夢想前進~。 自定義view,如果是我,我首先要看到自定義view的效果圖,然後再想想怎麼實現這種效果或功能,所以先貼

Android定義錄影(之錄影功能實現(附demo原始碼)

引言 最近在做一個專案,是有關用手機攝像頭做影象實時識別的。所以裡面需要自定義一個錄影功能。該demo實現了錄影和錄影後文件的儲存檢視,錄影會實時自動對焦(AutoFocus)。根據功能分兩篇講述。這第一篇講述錄影基本實現思路和需要注意的點。後面附有githu

Android學習—簡單定義View(

最近手上不忙所以回顧了一下自己今年來所接觸和學習的東西,突然覺得寫部落格真是一個很好的方式,希望自己 可以堅持下去。 自定義View的流程 建立自定義類繼承View,並重寫構造方法,構造方法總共有四種,我們暫時只需要繼承前兩種 public CircleVi

Android 手把手教您定義ViewGroup(

最近由於工作的變動,導致的部落格的更新計劃有點被打亂,希望可以儘快脈動回來~今天給大家帶來一篇自定義ViewGroup的教程,說白了,就是教大家如何自定義ViewGroup,如果你對自定義ViewGroup還不是很瞭解,或者正想學習如何自定義,那麼你可以好好看看這篇部落格。1、概述在寫程式碼之前,我必須得

Android:從繪製張流程圖來體驗View的定義過程(

概述         自定義View向來不是一個輕鬆的話題。雖然對於android原生開發而言,這隻能算是一項基本的技能,但真正當我們拿到一份需要我們自定義去實現的需求的時候,多少還會有點手足無措。具體是什麼原因,我也不知道,也許,“菜,是原罪”。‘’“業精於勤

Android定義Transition動畫

本文已授權微信公眾號:鴻洋(hongyangAndroid)在微信公眾號平臺原創首發。 曾經(或者現在)很多人說起Android和iOS都會拿Android的UI設計來開黑, “你看看人家iOS的設計, 再來看看Android的, 差距怎麼就這麼大呢?”, 對於這種說辭

[Android]定義開機動畫實踐 Android定製:修改開機啟動畫面

關於開機動畫的修改,可以參考 Android定製:修改開機啟動畫面 開機動畫主要是載入圖片,就像動畫片一樣。 在製作bootanimation.zip檔案的時候,需要注意 應該採用“儲存”(store)的方式去打包,不然系統會識別不了圖片資源 下面是一個動畫修改測試,我們也

Android定義View(三-Draw原理篇

Android自定義View通常需要經過measure、layout和draw過程。 如果你沒有了解過measure過程,可以先看看這篇文章。 如果你沒有了解過layout過程,可以先看看這篇文章。 一、draw的作用:繪製View檢視 二、draw過程:類似meas

定義View(View工作原理之測量 measure

在Android中,一個View繪製出來要經過三大流程,分別用measure來測量View的寬高,用layout來確定View在父容器中的位置,最終用draw將View繪製到螢幕上。本章節主要,通過自己的理解來講解一下第一個流程measure的相關知識點。 measure方法在View類中,

Android定義View動畫

執行效果: 前言: Android系統提供了兩個動畫框架:屬性動畫框架和View動畫框架。 兩個動畫框架都是可行的選項,但是屬性動畫框架通常是首選的使用方法,因為它更靈活,並提供更多的功能。 除了這兩個框架,還可以使用Drawable動畫(即逐幀動畫,Animatio

Android定義元件(四

1.陰影 陰影即可以為文字和圖形指定陰影,預設情況下,我們的文字和圖形都是繪製在主層(main layer)上,我們也可以將內容繪製到新的layer上,實際上陰影就是在main layer的下面添加了一個陰影層。 Paint類為此定義了一個名為setShadowLayer

Android定義檢視-手指移動軌跡

今天看了大神寫的關於貝塞爾曲線的部落格,就寫下了關於手指軌跡的一篇部落格, 一、什麼是貝塞爾曲線             貝塞爾曲線(Bézier curve),又稱貝茲曲

Android定義EditText——帶鍵清除和密碼明文切換按鈕,支援多樣式選擇

      Android自定義View開始入坑,打算寫一些自定義控制元件練練手。       這是一個自定義EditText,帶一鍵清除和密碼明文切換按鈕(可以傳入自定義圖片資源),可以自定義邊框顏色,還支援四種邊框樣式的選擇。       原始碼已上傳 GitHub: 

Android定義view案例氣泡框

通過之前的兩個基礎文章的學習,我們基本知道自定義view的基本流程和各方法的作用了。那麼接下來我們就要拿起畫筆去繪製我們的view了。首先老規矩把我們的學習大綱拿出來,時刻不能忘,,哈哈、 1.自定義view單純的用畫筆繪製view(死view) 2.自定義view增加手勢

Android 定義控制元件 () ,柱狀圖 ,Canvas 繪製 柱狀圖 ,支援觸控操作

專案中,經常會用到統計圖表,個性化展示資料,增加趣味性,之前也用過百度Echarts來展示,效果很不錯,包括一些互動操作,不得不說,echarts幫我我們實現了絕大多數的需求,體積小不說,實現方式也很簡單,後來想了想,為什麼不用安卓Canvas繪製呢,畢竟是安卓開發攻城獅,下

ANDROID定義檢視——onLayout原始碼 流程 思路詳解

簡介: 在自定義view的時候,其實很簡單,只需要知道3步驟:    1.測量——onMeasure():決定View的大小    2.佈局——onLayout():決定View在ViewGroup中的位置    3.繪製—

exports構建定義模組(

exports可以向外部檔案暴露方法和屬性,同過載單獨js檔案內寫方法向外部暴露呼叫方法就能完成模組的定義。 demo1: exports_test1.js var name; exports.s