anroid Api demo自帶的一個shake(搖頭)效果
下面是anroid Api demo自帶的一個shake(搖頭)效果
public class Animation1 extends Activity implements View.OnClickListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.animation_1);
View loginButton = findViewById(R.id.login);
loginButton.setOnClickListener(this );
}
public void onClick(View v) {
Animation shake = AnimationUtils.loadAnimation(this , R.anim.shake);
findViewById(R.id.pw).startAnimation(shake);
}
}
在anim資料夾下建立一個shake.xml
<? xml version = "1.0" encoding = "utf-8" ?>
< translate xmlns:android = "http://schemas.android.com/apk/res/android"
android:fromXDelta = "0"
android:toXDelta = "10" android:duration = "1000" android:interpolator = "@anim/cycle_7"
/>
再在該資料夾下建立一個cycle_7.xml
<? xml version = "1.0" encoding = "utf-8" ?>
< cycleInterpolator xmlns:android = "http://schemas.android.com/apk/res/android" android:cycles = "7" />
Android混合型動畫AnimationSet
public void onCreate(Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
// 要使用findViewById, 一定要使用layout / *.xml 做為使用者介面
setContentView( R.layout.main );
// 取得UI 介面中的View 物件
// 取得View 物件後,再透過轉換成實際的物件
ImageView ivPic = (ImageView)this .findViewById(R.id.widget10); //底圖
ImageView iv = (ImageView)this .findViewById(R.id.widget28);
// 設定ImageView 的圖片來源
ivPic.setImageResource( R.drawable.a2 );
iv.setImageResource( R.drawable.icon );
// 透明度動畫設定(startAlpha, endAlpha)
Animation am1 = new AlphaAnimation ( 1 , 0 );
// 動畫開始到結束的執行時間(1000 = 1 秒)
am1. setDuration ( 2000 );
// 動畫重複次數(-1 表示一直重複)
am1. setRepeatCount ( -1 );
// 旋轉動畫設定(startAngle, endAngle, rotateX, rotateY)
Animation am2 = new RotateAnimation ( 0 , 360 , 30 , 30 );
// 動畫開始到結束的執行時間(1000 = 1 秒)
am2. setDuration ( 2000 );
// 動畫重複次數(-1 表示一直重複)
am2. setRepeatCount ( -1 );
// 動畫集合
AnimationSet am = new AnimationSet ( false );
am. addAnimation ( am1 );
am. addAnimation ( am2 );
// 圖片配置動畫
iv. setAnimation (am);
// 動畫開始
am. startNow ();
}
附:android中所有的interpolator (變化率)
android平臺提供瞭如下的interpolater
AccelerateDecelerateInterpolator
AccelerateInterpolator
CycleInterpolator
DecelerateInterpolator
LinearInterpolator
AnticipateInterpolator
AnticipateOvershootInterpolator
BounceInterpolator
OvershootInterpolator
這些interpolater實現的是
android.view.animation.Interpolator介面
該介面只有一個方法
getInterpolation(float num)
也就是不同的interpolater計算出的值不一樣,比如:
public float getInterpolation(float input)
{
if (mFactor == 1.0f)
{
return (float)(input * input);
}
else
{
return (float)Math.pow(input, 2 * mFactor);
}
}
當輸入的值為1時候,那麼返回值是平方,否則返回立方的值。
其實interpolator是按照這種方式計算的
This interpolator’s goal is to provide a multiplication factor given a time interval
based on a hyperbolic curve。
基於雙曲線計算時間的間隔,進行相關的動畫處理。
比如常用的accelerator_interpolator其xml定義的結構為:
<accelerator xmlns:android="http://schemas.android.com/apk/res/android"
factor="1" /> 其乘數為1;基於此進行計算。
相關文章
- 微信搖一搖的一個有趣應用
- HTML5 語音聊天 IM|仿微信語音介面|搖一搖效果HTML
- 如何用純 CSS 創作一個搖搖晃晃的 loaderCSS
- css帶有空心箭頭矩形效果CSS
- vue資料自動儲存的一個小DemoVue
- CSS帶有箭頭的對話方塊效果CSS
- android自帶的api的例子很多AndroidAPI
- CSS帶有三角小箭頭的矩形效果CSS
- CSS3 帶有箭頭圓角效果CSSS3
- Windows XP自帶的一個罕見的功能!Windows
- 一個clean框架的demo框架
- 一個Demo帶你理解Android介面回撥機制Android
- Android搖一搖、螢幕方向的監聽Android
- iOS-OC-仿微信搖一搖iOS
- 從頭帶你擼一個Springboot StarterSpring Boot
- 【接入指南】一個Demo帶你玩轉華為帳號服務
- 一個RPC的demo(good)RPCGo
- 關於Sqlite的一個demoSQLite
- iOS微信朋友圈與搖一搖iOS
- jquery滑鼠懸浮彈出帶有箭頭的tips效果jQuery
- Java Date API demoJavaAPI
- ArcGIS API for JavaScript開發環境搭建及第一個例項demoAPIJavaScript開發環境
- 一個spark清洗資料的demoSpark
- 一個vue的電影資訊demoVue
- Swift自習室招募:兩個月30個DemoSwift
- css3實現底部帶有箭頭的圓角矩形效果CSSS3
- swift實現仿知乎搖一搖彈出框Swift
- 實現微信搖一搖功能簡單介紹
- 微信IOS中搖一搖無法播放聲音iOS
- 短視訊軟體開發,各個圖示自帶漸變色效果
- 誰能推薦一個好的html parser,除了lucene自帶那個!HTML
- APP開發帶來的五個能看到的效果:APP
- 【JavaScript】第一個Demo和一個問題JavaScript
- 一個極簡版本的 VUE SSR demoVue
- 寫一個簡單的demo理解vuexVue
- Android中Service的一個Demo例子Android
- 上傳檔案到七牛雲端儲存的java api一個簡單的demo實現JavaAPI
- iOS通過加速計計算搖一搖次數iOS