android tab標籤點選縮放效果
阿新 • • 發佈:2019-01-26
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){ finalAnimationSet 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) { } }); }