android新消息提醒功能,Android-仿QQ/微信-全局新消息提示

最近赶项目比较忙,趁周末补点文章。

效果预览:

ec3fd15e067cee4e5e7ce21e09ec309b.gif

开发需求:

这个弹窗一般用于新消息展示,需要是全局的,所以采用WindowManager来做,可以显示在其他应用之上。

一般消息弹窗会在几秒内消息,否则会影响用户体验,所以还需要延时关闭。

消息弹出后要给用户选择的机会,所以用户可以手动移除弹窗,这里采用手势来达到取消显示的目的。

撸码:

1.先撸一个类,构造传入上下文,因为待会会用。

public class TitleTextWindow {

private Context mContext;

public TitleTextWindow(Context context) {

mContext = context;

}

}

2.抽取几个必要的方法,然后进行代码编写。

/**

* 向外部暴露显示的方法

*/

public void show(){

}

/**

* 向外部暴露关闭的方法

*/

public void dismiss(){

}

/**

* 视图创建方法

*/

private void createTitleView(){

}

3.将伪代码功能实现。

/**

* 向外部暴露显示的方法

*/

public void show(){

createTitleView();

animShow();

//3S后自动关闭

mHander.sendEmptyMessageDelayed(20, 3000);

}

/**

* 向外部暴露关闭的方法

*/

public void dismiss(){

animDismiss();

}

/**

* 视图创建方法

*/

private void createTitleView(){

//准备Window要添加的View

linearLayout = new LinearLayout(mContext);

final LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);

linearLayout.setLayoutParams(layoutParams);

View titleView = View.inflate(mContext, R.layout.header_toast, null);//这里是你弹窗的UI

// 为titleView设置Touch事件

linearLayout.setOnTouchListener(this);

linearLayout.addView(titleView);

// 定义WindowManager 并且将View添加到WindowManagar中去

wm = (WindowMa

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值