我正在开发一个应用程序,在我的主页上,我需要给徽标(imageview)提供发光和褪色效果动画我尝试了很多,但是找不到如何给出发光效果动画,我知道onclick事件的发光效果请帮我解决这个问题
提前致谢
提前致谢
public class CustomView extends ImageView{ public CustomView(Context context,AttributeSet attrs,int defStyle) { super(context,attrs,defStyle); } public CustomView(Context context,AttributeSet attrs) { super(context,attrs); } public CustomView(Context context) { super(context); } boolean drawGlow = false; //this is the pixel coordinates of the screen float glowX = 0; float glowY = 0; //this is the radius of the circle we are drawing float radius = 20; //this is the paint object which specifies the color and alpha level //of the circle we draw Paint paint = new Paint(); { paint.setAntiAlias(true); paint.setColor(Color.WHITE); paint.setAlpha(50); }; @Override public void draw(Canvas canvas){ super.draw(canvas); if(drawGlow) canvas.drawCircle(glowX,glowY,radius,paint); } @Override public boolean onTouchEvent(MotionEvent event){ if(event.getAction() == MotionEvent.ACTION_DOWN){ drawGlow = true; }else if(event.getAction() == MotionEvent.ACTION_UP) drawGlow = false; glowX = event.getX(); glowY = event.getY(); this.invalidate(); return true; } }
这段代码是我希望动画的触摸事件
解决方法
对于发光效果检查
Glow effect和
对于闪烁类型的动画使用它,你必须改变Reapeatcount和持续时间根据您的要求
AlphaAnimation blinkanimation= new AlphaAnimation(1,0); // Change alpha from fully visible to invisible blinkanimation.setDuration(300); // duration - half a second blinkanimation.setInterpolator(new LinearInterpolator()); // do not alter animation rate blinkanimation.setRepeatCount(3); // Repeat animation infinitely blinkanimation.setRepeatMode(Animation.REVERSE);
使用后如下所示
imageview.startAnimation(blinkanimation); or imageview.setAnimation(blinkanimation);