效果图:
使用方法:
布局文件中:
<com.yt.utils.succeedPopup
android:id="@+id/succeedPopup"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true" />
使用代码中:
succeedPopup = (succeedPopup) findViewById(R.id.succeedPopup); //获取自定义控件
succeedPopup.setPopupImage(R.drawable.miss); //设置弹窗的图片
succeedPopup.popup();//调用该方法进行弹出窗口(需要弹出窗口的时候调用)
自定义控件代码:package com.yt.utils; import android.animation.Animator; import android.animation.AnimatorSet; import android.animation.ObjectAnimator; import android.content.Context; import android.util.AttributeSet; import android.view.View; import android.widget.ImageView; import android.widget.RelativeLayout; import com.miu.apps.miss.R; import java.util.Timer; import java.util.TimerTask; /** * yt make * 成功显示的图片弹窗控件 * Created by Administrator on 2016/12/2. */ public class succeedPopup extends RelativeLayout { private ImageView mSucceed; public succeedPopup(Context context) { this(context, null); } public succeedPopup(Context context, AttributeSet attrs) { super(context, attrs); View view = View.inflate(context, R.layout.view_succeedpopup, this); mSucceed = (ImageView) findViewById(R.id.view_succeedpopup_succeed); } /** * 调用改方法弹窗,默认1秒后消失 */ public void popup(){ popup(1000); } /** * 调用该方法弹窗 * @param time 弹窗出现后显示多长时间消失 */ public void popup(int time){ /** *弹出打卡提示框 */ mSucceed.setVisibility(VISIBLE); mSucceed.post(new Runnable() { @Override public void run() { mSucceed.invalidate(); ObjectAnimator rotate = ObjectAnimator.ofFloat(mSucceed, "scaleY", 1F, 78F); ObjectAnimator rotate2 = ObjectAnimator.ofFloat(mSucceed, "scaleX", 1F, 78F); ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(mSucceed, "alpha", 0.08f, 1f); AnimatorSet set = new AnimatorSet(); set.playTogether(rotate, rotate2, fadeInOut); set.setDuration(100); set.start(); } }); /** * 创建一个定时器的子线程定时一个时间后执行任务 */ TimerTask task = new TimerTask() { public void run() { mSucceed.post(new Runnable() { @Override public void run() { mSucceed.invalidate(); ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(mSucceed, "alpha", 1F, 0.1F); AnimatorSet set = new AnimatorSet(); set.playTogether(fadeInOut); set.setDuration(200); set.start(); set.addListener(new Animator.AnimatorListener() { @Override public void onAnimationStart(Animator animation) { } @Override public void onAnimationEnd(Animator animation) { mSucceed.setVisibility(GONE); } @Override public void onAnimationCancel(Animator animation) { } @Override public void onAnimationRepeat(Animator animation) { } }); } }); } }; Timer timer = new Timer(); timer.schedule(task, time); } /** * 设置弹窗出现的图片 * @param resId */ public void setPopupImage(int resId){ mSucceed.setImageResource(resId); } }