這是我以前在做雅虎介面效果的**,廢話不多說,直接上**:
1、主介面:(沒有xml布局,都是通過**實現):
public class mainactivity extends activity
/** 延遲3s */
private void startloadingdata()
},3000);//延遲時間 }
/** 執行其餘動畫 */
protected void onloadingdataend()
}
2、 imageview類(相當於new imageview(this))
public class contentview extends imageview
}
3、繼承view的主要動畫實現類
/**
* 自定義view
* * @author weica
* 說明:
* 1.先在建構函式中執行第一次旋轉動畫
* 2.然後再主線程的定時器方法完成後,呼叫第二個6圓縮放動畫,
* 以此類推,到中心圓縮放動畫,到擴散動畫,最後顯示主介面
* */
public class splashview extends view
/*** 構造方法
* * @param context
*/public splashview(context context)
private void initialize(context context)
/*** 定義乙個抽象類--動畫狀態類 作用:讓幾個動畫狀態類開始執行後都開始繪製各自的介面--invalidate--》ondraw()
* 通過ondraw方法統一控制呼叫drawstate方法來繪製介面
* */
private abstract class splashstate
// 每次介面重新整理都會呼叫的--繪製
@override
protected void ondraw(canvas canvas)
// 分發到各個動畫狀態類---繪製各自的影象
mstate.drawstate(canvas);
} /** 第一次執行的動畫,設定預設執行的動畫物件 */
private void handlefirstdraw()
/*** 定義第乙個動畫---旋轉動畫 大圓( 包含了6個小圓) (繼承抽象類的子類,其中把drawstate方法寫好,等待ondraw呼叫方法)
*/private class rotationstate extends splashstate
});// 重複次數為無窮
manimator.setrepeatcount(valueanimator.infinite);
// 設定讓他不斷地旋轉 --迴圈
manimator.setrepeatmode(valueanimator.restart);
// 開始執行
manimator.start();
} @override
public void drawstate(canvas canvas)
public void cancel()
} /** 繪製大圓背景 */
public void drawbackground(canvas canvas) else
} /** 繪製裡面的小圓 */
public void drawcircles(canvas canvas)
} /**
* 定義第二個動畫---6個小圓聚合動畫
*/private class mergingstate extends splashstate
});// 設定監聽--
animator.addlistener(new animatorlisteneradapter()
});// 插值器(interpolator)彈射的效果,注意:縮放動畫就是因為這個屬性會先變大一下再縮小
animator.setinterpolator(new overshootinterpolator(6f));
// 保持動畫執行後的狀態
animator.reverse();
} @override
public void drawstate(canvas canvas)
} /**
* 定義第三個動畫---(為了更加美觀,最好處理一下縮放後,中心點的圓再進行縮放) 中心點位置單獨的圓的縮放動畫效果
*/private class singularitystate extends splashstate
});// 監聽
animator.addlistener(new animatorlisteneradapter()
});animator.reverse();
} @override
public void drawstate(canvas canvas)
} /**
* 定義第四個動畫--- 空心圓動畫
*/private class expandingstate extends splashstate
});animator.start();
} @override
public void drawstate(canvas canvas)
} /**
* (暴露的方法,其餘動畫的入口)
* 執行第二部分的動畫然後消失,顯示contentview
*/// mstate不為null,並且是第乙個動畫例項
if (mstate != null && mstate instanceof rotationstate)
});} }
/** 畫單圓 */
變形效果 過度效果
變形效果 transform 屬性值為變形函式 1 縮放函式scale x,y saclex x sacle y 大於1方大小於1縮小 2 平移函式translate x,y translatex x translatey y 相對於元素的原始位置進行平移 3 旋轉函式rotate deg 單位為d...
Tweening過度緩動效果
tweening 過度緩動效果 1.首先介紹 easing 緩動效果。要實現如上效果,必須把目標物件按設定的時間閥值內移動到指定的位置,該曲線隨著時間的推移,速度越來越快,實現這種效果必須用到二次方程。下面是建構函式中核心 sprite.addeventlistener event.enter fr...
如何給網頁新增等待是的過度效果
先在你的頁面上載入這個js 這個是你自己寫的 自上而下執行 會優先載入這個 然後在這個js裡寫 當然 這一切 都是為了給你想顯示的那個 乙個排版 核心1 在document.write 上 是把上面的html 寫在頁面 這樣能優先顯示他 核心2 這段 表示 一直監聽 的狀態 上面completelo...