1. 程式人生 > >android tab標籤點選縮放效果

android tab標籤點選縮放效果

private void animationScale(View v){
    ObjectAnimator animatorX  = ObjectAnimator.ofFloat(v,"ScaleX", 1.0F, 0.8F, 1.2F, 1.0F);
ObjectAnimator animatorY = ObjectAnimator.ofFloat(v,"ScaleY", 1.0F, 0.8F, 1.2F, 1.0F);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.playTogether(animatorX, animatorY);
animatorSet.setDuration(80); animatorSet.start(); } class tabOntouchListener implements View.OnTouchListener{ @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()){ case MotionEvent.ACTION_UP: animationScale(v); break;
} return false; }

}

mTabHost.getTabWidget().getChildAt(0).setOnTouchListener(new tabOntouchListener());
這樣的效果只在手機“開發者選項”中設定為開啟動畫時才有效果;如果希望在關閉動畫的時候也希望有效果我是下面這樣寫的
 static  float scalex[]={1.0F, 0.8F, 1.2F, 1.0F};private static void animationScale(final View v,final int time,final int index){
        final 
AnimationSet animationSet = new AnimationSet(true); ScaleAnimation scaleAnimation = new ScaleAnimation(scalex[index],scalex[index+1],scalex[index],scalex[index+1], Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); //3秒完成動畫 scaleAnimation.setDuration(time); animationSet.addAnimation(scaleAnimation); //啟動動畫 v.startAnimation(animationSet); animationSet.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if(index < scalex.length-2){ animationScale(v,time,index+1); } } @Override public void onAnimationRepeat(Animation animation) { } }); }