編輯:關於Android編程
簡介:NineOldAndroids是一款支持在低版本開發的Android動畫的框架 包括了一系列如ViewAnimator,ObjectAnimator,
ViewPropertyAnimator等API,解決了Tween動畫中移動過程只顯示移動效果,而不是真正組件的問題.
1)創建ObjectAnimator
ObjectAnimator anim1=ObjectAnimator.ofFloat(balls.get(0),y,0f,getHeight()-balls.get(0).getHeight()).setDuration(500);
調用開始 animation.start();
克隆 ObjectAnimator anim2=anim1.clone();
2)定義動畫組
ObjectAnimator animDown=ObjectAnimator.ofFloat(balls.get(2), y,0f,getHeight()-balls.get(2).getHeight()).setDuration(500); ObjectAnimator animUp=ObjectAnimator.ofFloat(balls.get(2), y,getHeight()-balls.get(2).getHeight(),0f).setDuration(500); AnimatorSet s1=new AnimatorSet();使動畫具有連貫性 s1.playSequentially(animDown,animUp);
3)值動畫(AnimatorInflater布局加載器)
ValueAnimator alphaAnimator=(ValueAnimator) AnimatorInflater.loadAnimator(AnimationLoading.this,R.anim.animator); alphaAnimator.setTarget(balls.get(1)); alphaAnimator.addUpdateListener(new AnimatorUpdateListener() { @Override public void onAnimationUpdate(ValueAnimator animation) { balls.get(1).setAlpha((Float) animation.getAnimatedValue()); } });
4)動畫集
PropertyValuesHolder animY=PropertyValuesHolder.ofFloat(y,balls.get(1).getY(),getHeight()-100); PropertyValuesHolder alpha=PropertyValuesHolder.ofFloat(alpha,1.0f,.5f); ObjectAnimator pvhAlpha=ObjectAnimator.ofPropertyValuesHolder(balls.get(1), animY,alpha).setDuration(1000);//設置放大動畫
PropertyValuesHolder widthHolder=PropertyValuesHolder.ofFloat(width,ball.getWidth(),ball.getWidth()*2); PropertyValuesHolder heightHolder=PropertyValuesHolder.ofFloat(height,ball.getHeight(),ball.getHeight()*2); PropertyValuesHolder xPt=PropertyValuesHolder.ofFloat(x,ball.getX(),ball.getX()-BALL_SIZE/2f); PropertyValuesHolder yPt=PropertyValuesHolder.ofFloat(y,ball.getY(),ball.getY()-BALL_SIZE/2f); ObjectAnimator sumAnimator=ObjectAnimator.ofPropertyValuesHolder(ball,widthHolder,heightHolder,xPt,yPt).setDuration(750); sumAnimator.setRepeatMode(ValueAnimator.REVERSE); sumAnimator.setRepeatCount(1);//設置repeatCount=1使其恢復原樣//轉換動畫的軌跡
ObjectAnimator.ofFloat(target,translationX,0,50).setDuration(duration).start(); ObjectAnimator.ofFloat(target,translationY,0,50,-50,0).setDuration(duration).start();縮放:1.0f代表為原來長/寬度的1倍,同理其他.所有的倍數都是因最早設定的寬度成倍
ObjectAnimator.ofFloat(target,scaleX,1,2,1).setDuration(duration).start(); ObjectAnimator.ofFloat(target,scaleY,1,2).setDuration(duration).start();透明度:1.0f表示不透明 0表示全透明
ObjectAnimator.ofFloat(target,alpha,1,0,1).setDuration(duration).start();旋轉:
ObjectAnimator.ofFloat(target,rotationX,0,180,0).setDuration(duration).start(); ObjectAnimator.ofFloat(target,rotationY,0,360).setDuration(duration).start(); ObjectAnimator.ofFloat(target,rotation,0,180,0).setDuration(duration).start();設置變換中心;當然,多個動畫可以組合變換
ViewHelper.setPivotX(target,target.getWidth()/2); ViewHelper.setPivotY(target,target.getHeight()/2);
animate(target).setDuration(2000); animate(animatingButton).alpha(0); animate(animatingButton).x(xValue).y(yValue); animate(animatingButton).rotationYBy(720);
Intent簡介Android中提供了Intent機制來協助應用間的交互與通訊,Intent負責對應用中一次操作的動作、動作涉及數據、附加數據進行描述,Android則根
開門見山:這裡給出rk 在cameraHAL層的camera數據結構:typedef struct FramInfo{ int phy_addr; int v
引言 網絡一直是我個人的盲點,前一陣子抽出時間學習了一下Volley網絡工具的使用方法,也透過源碼進行了進一步的學習,有一些心得想分享出來。在Android
首先,為什麼要用aidl ------------------------------------------------------------------------