`
119568242
  • 浏览: 426847 次
  • 性别: Icon_minigender_1
  • 来自: 深圳/湛江
社区版块
存档分类
最新评论

[android]仿360状态,类流量监控桌面浮动显示

 
阅读更多

前两天看到部分音频播放器可以实现在桌面上显示歌词,360那个浮动的桌面提示,想不到怎么实现。然后查了些资料大致了解了下,比想象的简单多了。先看效果图吧。


白色的字体是我加入进去的,此时是可以允许切换背景的。且按住白色背景可以拖动。

 

其实主要就是注册一个view到windowsManager上去,然后对它的参数配置成可显示到桌面上的参数就可以了。

 

下面是代码

activity

就是简单的一个按钮 layout就不写了 

 

 

package com.cfuture.desktop;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;

public class AndroidDesktopActivity extends Activity {
    //一个有只有一个按钮的activity
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
    public void funClick(View v){
        //按钮被点击
       this.startService(new Intent(this,Mser.class));
// new TableShowView(this).fun(); 如果只是在activity中启动 
// 当activity跑去后台的时候[暂停态,或者销毁态] 我们设置的显示到桌面的view也会消失
// 所以这里采用的是启动一个服务,服务中创建我们需要显示到table上的view,并将其注册到windowManager上  
        this.finish();
    }
}
 

 然后是一个服务

 

package com.cfuture.desktop;

import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class Mser extends Service {
    //服务
    //这个类纯蛋疼用 只是为了在activity点击button后 在开启一个service 
    
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    public void onCreate() {
  //创建service时一个 实例化一个TableShowView对象并且调用他的fun()方法把它注册到windowManager上
        super.onCreate();
        new TableShowView(this).fun();
    }


    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        return super.onStartCommand(intent, flags, startId);
    }
}

 最后是一个复写的view其实不复写view 也行 总之是能传入context对象就可以的了 不过如果想要实现歌词那种或者可以动态改变内容的 就要复写view分支的类了。

TableShowView

 

package com.cfuture.desktop;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.MotionEvent;
import android.view.View;
import android.view.WindowManager;

public class TableShowView extends View {
  //如果是想显示歌词则继承TextView并复写ondraw方法。
  //开启一个线程不断的调用ondraw方法去更改你所写的继承自TextView的内容
  //这里随便写了个集成自view的= =这个不是重点
    
    Context c;
    WindowManager mWM;//WindowManager
    WindowManager.LayoutParams mWMParams;//WindowManager参数
    

    public TableShowView(Context context) {
        // TODO Auto-generated constructor stub
        super(context);
        c = context;
    }


    public void fun() {
        //设置载入view WindowManager参数
        mWM = (WindowManager) c.getSystemService(Context.WINDOW_SERVICE);
        final View win = LayoutInflater.from(c).inflate(R.layout.ctrl_window,
                null);
        //这里是随便载入的一个布局文件

        win.setOnTouchListener(new OnTouchListener() {
            //触屏监听
            float lastX, lastY;

            public boolean onTouch(View v, MotionEvent event) {
                final int action = event.getAction();

                float x = event.getX();
                float y = event.getY();
                if (action == MotionEvent.ACTION_DOWN) {
                    lastX = x;
                    lastY = y;
                } else if (action == MotionEvent.ACTION_MOVE) {
                    mWMParams.x += (int) (x - lastX);
                    mWMParams.y += (int) (y - lastY);
                    mWM.updateViewLayout(win, mWMParams);
                }
                return true;
            }
        });

        WindowManager wm = mWM;
        WindowManager.LayoutParams wmParams = new WindowManager.LayoutParams();
        mWMParams = wmParams;
        wmParams.type = 2003; // type是关键,这里的2002表示系统级窗口,你也可以试试2003。
        wmParams.flags = 40;// 这句设置桌面可控

        wmParams.width = 300;
        wmParams.height = 200;

        wm.addView(win, wmParams);//这句是重点 给WindowManager中丢入刚才设置的值 只有addview后才能显示到页面上去。
        //注册到WindowManager win是要刚才随便载入的layout,wmParams是刚才设置的WindowManager参数集
        //效果是将win注册到WindowManager中并且它的参数是wmParams中设置饿
        
    }

}

 写的很杂 就酱子吧

  • 大小: 132.2 KB
分享到:
评论
4 楼 tiger1819 2014-06-14  
有源码么,想学习
3 楼 li247276297 2012-12-10  
楼主  是不是要加个权限?
2 楼 119568242 2012-09-14  
貌似掉线 写道
膜拜一下,MARK回去参考。

而已卖萌可耻
1 楼 貌似掉线 2012-09-14  
膜拜一下,MARK回去参考。

相关推荐

    android 仿360桌面 测试 demo

    在Android平台上,开发一款类似360桌面的应用是一项挑战性的任务,因为它涉及到多个技术领域,如用户界面设计、系统权限管理、窗口浮动服务等。"android 仿360桌面 测试 demo" 提供了一个很好的学习资源,对于初学者...

    Android应用源码仿360手机助手首页浮动菜单.zip

    本资源提供的"Android应用源码仿360手机助手首页浮动菜单"是一个很好的学习案例,可以帮助开发者理解和实现这种功能。 首先,我们来分析一下浮动菜单的核心特性。360手机助手的首页浮动菜单通常包含几个可滑动的...

    桌面浮动图标弹出窗口360效果

    【标题】:“桌面浮动图标弹出窗口360效果”是指在桌面上实现类似360软件那样的浮动窗口效果,这种效果通常具有高度的交互性和视觉吸引力。360安全卫士等应用中的浮动图标,能够在用户进行其他操作时依然在屏幕边缘...

    android 仿360助手 浮动

    在Android平台上,开发一款类似360助手的浮动窗口应用是一项技术挑战,它涉及到多个关键知识点,包括系统权限管理、自定义视图、窗口管理服务、事件处理以及UI设计等。接下来,我们将深入探讨这些核心内容。 首先,...

    android仿360 浮动小插件效果

    在Android平台上,360浮动小插件效果是一种常见的应用增强功能,它允许用户在屏幕上添加一个小窗口,显示特定的应用信息或提供快捷操作。这种效果是通过实现Android系统的悬浮窗功能来实现的,通常用于安全类应用、...

    android桌面悬浮窗效果进阶 仿360手机卫士、淘宝手机助手-IT计算机-毕业设计.zip

    这个毕业设计项目,"android桌面悬浮窗效果进阶 仿360手机卫士、淘宝手机助手",旨在帮助学生深入理解Android系统的运行机制,并通过模仿知名应用如360手机卫士和淘宝手机助手的悬浮窗功能来实践这一技术。...

    android 360浮动窗口

    360浮动窗口通常用于即时通讯、音乐播放、视频监控等场景,使用户可以同时处理多个任务。下面我们将深入探讨这种技术的核心知识点及其实现方法。 首先,要实现360浮动窗口,我们需要理解Android系统的窗口管理机制...

    Android高仿360安全卫士布局

    在Android应用开发中,设计和实现一款类似360安全卫士的用户界面是一项挑战性的任务,因为它需要兼顾美观、易用性和功能性。本篇主要关注"360安全卫士"布局的设计与实现,我们将深入探讨如何创建这样一个布局,并...

    android例子 360浮动窗口效果.rar

    在Android开发中,360浮动窗口效果是一种常见的应用功能,尤其在系统工具或辅助类应用中常见。这种效果使得应用程序可以在用户界面的顶部或底部显示一个小窗口,即便用户在其他应用中操作,该窗口仍然可见,从而提供...

    Android项目仿360 浮动小插件效果.rar

    这个压缩包文件“Android项目仿360 浮动小插件效果”提供了一个示例项目,帮助开发者了解并实现这一功能。以下是关于这一主题的详细知识讲解。 首先,我们需要了解浮动小插件在Android中的概念。这种小插件被称为...

    android桌面浮动窗口实现

    在Android系统中,实现桌面浮动窗口(也称为悬浮窗或小部件)的技术主要涉及到权限申请、自定义ViewGroup以及窗口管理器(WindowManager)的使用。以下是对这一主题的详细阐述: 首先,为了在Android应用中创建浮动...

    Android仿苹果siri 浮动控件

    下面将详细解释如何在Android中创建这样一个“Android仿苹果Siri浮动物件”。 首先,`WindowManager`是Android系统提供的一个接口,它允许开发者动态地在窗口管理器中添加、删除和更新视图。这使得我们可以独立于...

    安卓Android源码——仿360手机助手首页浮动菜单.zip

    这篇教程将深入探讨如何在Android平台上创建一个仿360手机助手首页的浮动菜单。首先,我们需要理解Android应用的基本架构,这包括Activity、Intent、布局(Layout)以及自定义View等核心概念。 **1. Activity与...

    基于Android的仿360 浮动小插件效果.zip

    【标题】: "基于Android的仿360 浮动小插件效果" 这个项目是针对Android平台开发的一款模仿360安全卫士中的浮动小插件效果的应用。360安全卫士的浮动小插件是一种在屏幕边缘悬浮的交互元素,它可以提供快速操作入口...

    Android应用源码仿360手机助手首页浮动菜单.rar

    这个压缩包文件“Android应用源码仿360手机助手首页浮动菜单.rar”是一个关于Android应用开发的资源,其中包含了创建一个类似360手机助手首页浮动菜单的源代码实现。360手机助手是一款流行的Android应用,其首页的...

    仿360 浮动小插件效果_Android.rar

    这个项目"仿360 浮动小插件效果_Android.rar"显然是一个示例代码,帮助开发者理解如何在Android应用中实现这种功能。让我们深入探讨一下实现这种效果涉及的关键技术和步骤。 首先,我们需要了解的是Android中的悬浮...

    Android应用源码仿360手机助手首页浮动菜单源码.zip

    这份"Android应用源码仿360手机助手首页浮动菜单源码"就是一个很好的学习资源,它可以帮助开发者深入理解如何在Android应用中实现这种功能。 首先,浮动菜单通常被称为悬浮按钮(Floating Action Button, FAB),是...

Global site tag (gtag.js) - Google Analytics