安卓给View添加动画效果【视图动画】
说明:之前写过活动切换时的动画效果,这次我们来实现一下一般的view的动画效果。1.首先,还是要定义动画文件2.使用AnimationUtils.loadAnimation方法加载动画文件3.通过view.startAnimation方法执行动画效果,通过view.clearAnimation方法消除动画效果代码:1.加载动画文件private void init(Cont...
·
说明:
之前写过活动切换时的动画效果,这次我们来实现一下一般的view的动画效果。
1.首先,还是要定义动画文件
看一个例子play_music_rotate_anim文件:
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:duration="@integer/play_music_duration">
//持续时间
<rotate android:fromDegrees="0"
android:toDegrees="360"
android:pivotX="50%" //旋转中心
android:pivotY="50%"
android:repeatCount="infinite" //无限循环
/>
</set>
温馨提示:旋转中心务必使用百分比,如果为0则不用!!!
2.使用AnimationUtils.loadAnimation方法加载动画文件
3.通过view.startAnimation方法执行动画效果,通过view.clearAnimation方法消除动画效果
代码:
1.加载动画文件
private void init(Context context){
mContext=context;
mView= LayoutInflater.from(mContext).inflate(R.layout.activity_play_music_view, this,false);
mPlayCircleBg=mView.findViewById(R.id.play_music_circle_bg);
mPlayFlagImg=mView.findViewById(R.id.play_music_flag);
mNeedle=mView.findViewById(R.id.play_music_needle);
mWholeCircle=mView.findViewById(R.id.play_music_frame_layout_child_1);
mWholeCircle.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
trigger();
}
});
//加载动画文件
mPlayingAnim= AnimationUtils.loadAnimation(mContext,R.anim.play_music_rotate_anim);
mNeedleUpAnim=AnimationUtils.loadAnimation(mContext,R.anim.play_music_needle_up);
mNeedleDownAnim=AnimationUtils.loadAnimation(mContext,R.anim.play_music_needle_down);
addView(mView);
}
2.设置动画效果
public void startPlayMusic(){
mIsPlaying=true;
mPlayFlagImg.setVisibility(GONE);
//设置音乐播放时的动画
mWholeCircle.startAnimation(mPlayingAnim);
mNeedle.startAnimation(mNeedleDownAnim);
}
public void stopPlayMusic(){
mIsPlaying=false;
mPlayFlagImg.setVisibility(VISIBLE);
//设置音乐停止播放时的动画
mNeedle.startAnimation(mNeedleUpAnim);
mWholeCircle.clearAnimation();
}
更多推荐
已为社区贡献8条内容
所有评论(0)