Android仿微信文章悬浮窗效果

  • 时间:
  • 浏览:0
  • 来源:大发PK10APP下载_大发PK10APP官方

本文来自云栖社区商务战略合作伙伴“IT先森养成记”,了解相关信息还才能 关注“IT先森养成记”。

判断好权限以前,直接加在就还才能 了

1718    override fun onActivityDestroyed(activity: Activity?) {

2526                //判断mView是在Window中的位置,以上方为界

前些日子跟朋友聊天,朋友Z果粉,前些天更新了微信,说微信出了个好方便的功能啊,我问是啥功能啊,看看我大Android有没人,跟跟我说现在阅读公众号文章由于其他同学让他发微信让他把这篇文章当作悬浮窗悬浮起来,方便你聊完天不让找继续阅读,听完是就有其实 这叫啥啊,我大Android微信版就有早就有你这个 功能好久,我看文章的以前看完过有你这个 悬浮按钮,或多或少 我老会 没人使用过,试了一下还是挺方便的,就想着此人 实现一下你这个 功能,下面看图,朋友都习惯了无图言X

2021    override fun onActivitySaveInstanceState(activity: Activity?, outState: Bundle?) {

3233                //使用动画移动mView

2 3    private var started: Int = 0

看完动图朋友来分析一下,怎么还还可以在每个页面上都地处有另4个View呢,或多或少人由于会说,写在base上方,原本每次启动有另4个新的Activity就有往页面上addView一次,性能不好,再说了,朋友作为有另4个优秀的任务管理器池池员能干你这个 重复的事吗,你这个 方案果断打回去;既然原本得话原本们肯定要在全局加了,没人全局是哪呢?相信了解过Activity源码的朋友肯定知道,全局还才能 在Window层加啊,原本既能一次性甩掉,又不影响性能,说干就干。

2324    override fun onActivityStopped(activity: Activity?) {

7 8    @Override

9    public boolean onTouch(View v, MotionEvent event
{

原文发布时间为:2018-10-10

1011    override fun onActivityStarted(activity: Activity?) {

借助WindowManager.LayoutParams来实现,mLayoutParams.xmLayoutParams.y分别表示mView左上角的横纵坐标,什么都有有有朋友只时需改动这有另4个值就行了,当ACTION_UP时,计算当前mView的中心点相对窗口的位置,或多或少 将mView动态滑动到窗口左边由于右边:

4041                return isMove;

为了让WindowActivity脱离,这里朋友采用Service来做,通过Service来加在和移除View;在权限申请成功以前朋友时需通知Service(其实 是Activity,由于会有保存数据等操作)作相应改变(提供有另4个接口给Service),或多或少 在Service中使用广播来通知Activity;最后有另4个时需注意的地方可是我朋友时需判断应用任务管理器池池是否在前台还是后台来加在或移除Window,这里通过使用ActivityLifecycleCallbacks来监听Activity在前台的数量来判断应用任务管理器池池是在前台还是后台

1314    mLayoutParams = new WindowManager.LayoutParams();

4 5    override fun onActivityPaused(activity: Activity?) {

7 8    override fun onActivityResumed(activity: Activity?) {

5 6    ImageView ivImage = mView.findViewById(R.id.aw_iv_image);

1112    initListener(context);

15031    override fun onActivityCreated(activity: Activity?, savedInstanceState: Bundle?) {

首先朋友要考虑的有另4个大什么的问题可是我权限大什么的问题,由于要适配Android 7.0 8.0,加在悬浮窗是时需申请权限的,这里参考了Android 悬浮窗权限各机型各系统适配大全这篇文章,适配的比较全,还才能 直接拿来用。这里时需注意的是,为了适配Android 8.0Window的类型时需配置一下:

本文作者:24K纯帅豆