`
mickey_hou
  • 浏览: 246219 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Android浮动图片处理 FloatView

阅读更多
public class FloatView extends ImageView
{
   
    private float x , y , mTouchStartX , mTouchStartY;

    private int VIEW_HEIGHT = 25;
   
    private WindowManager windowManager;
   
    /*
     * 此wmParams为获取的全局变量,用以保存悬浮窗口的属性
     */
    private WindowManager.LayoutParams wmParams;

    /**
     * constructed function
     *
     * @param Context context,
     *        WindowManager manager ,
     *        WindowManager.LayoutParams params
     * @throws
     * @since Tiantian
     */
    public FloatView(Context context , WindowManager Wmanager , WindowManager.LayoutParams params)
    {
        super(context);   
        windowManager = Wmanager;
        wmParams = params;
    }

/**
  *
  * @param event
  * @return boolean
  */
@Override
public boolean onTouchEvent(MotionEvent event)
{
    
     /*
      * 获取相对屏幕的坐标,即以屏幕左上角为原点
      */
     x = event.getRawX();  
    
     /*
      * 系统状态栏的高度
      */
     y = event.getRawY()- VIEW_HEIGHT;
    
     CommonUtil.log("currX" + x + "====currY" + y);
    
     switch (event.getAction())
     {
             /*
              * 捕获手指触摸按下动作
              */
        case MotionEvent.ACTION_DOWN:
           
            /*
             * 获取相对View的坐标,即以此View左上角为原点
             */
        mTouchStartX =  event.getX(); 
                mTouchStartY =  event.getY();
               
            CommonUtil.log("startX" + mTouchStartX + "====startY" + mTouchStartY);
           
            break;
       
            /*
             * 捕获手指触摸移动动作
             */
        case MotionEvent.ACTION_MOVE:
           
            updateViewPosition();
           
            break;

            /*
             * 捕获手指触摸离开动作
             */
        case MotionEvent.ACTION_UP: 
           
        updateViewPosition();
        mTouchStartX = mTouchStartY=0;
       
        break;
       
        }
    
        return true;
       
}

/**
  * 更新浮动窗口位置
  *
  * @param
  * @return void
  * @throws
  * @since TianTian
  */
private void updateViewPosition()
{
    
     /*
     * 更新浮动窗口位置参数
     */
wmParams.x = (int)( x - mTouchStartX);
wmParams.y = (int) (y - mTouchStartY);

windowManager.updateViewLayout(this , wmParams);

}

}
分享到:
评论

相关推荐

    Android代码-自定义Floatview实现全站浮动按钮和来电秀

    自定义floatview,无需申明悬浮框权限,利用WindowManager TYPE_TOAST实现全站浮动式按钮,重写touch事件实现任意拖动,将view加入windowmanager层,可以使用控件实现类似来电秀的效果。 MIUI使用TYPE_TOAST也会无效...

    android 浮动窗口 模拟Home键

    以上就是实现Android浮动窗口以及模拟Home键功能的基本步骤。请注意,由于权限问题,从Android 7.0(API级别24)开始,创建浮动窗口可能需要用户授予`SYSTEM_ALERT_WINDOW`权限。在应用中添加相应权限声明,并在运行...

    Android 绘制方式实现浮动视图

    以上就是实现Android浮动视图的基本步骤。通过这个基础,你可以进一步扩展,例如添加动画效果、拖动操作、手势识别等功能,以满足各种复杂需求。在实际开发中,理解Android的窗口管理机制和事件处理流程至关重要,这...

    android 浮动窗口 小窗口

    总结来说,创建Android浮动窗口主要涉及以下几个步骤: 1. 添加`SYSTEM_ALERT_WINDOW`权限。 2. 创建一个服务`FloatWindowService`。 3. 在服务中加载浮动窗口的布局,并将其添加到`WindowManager`。 4. 设置`...

    FloatViewDemo:Android浮动窗口,实现浮动与其他应用之上;

    总的来说,`FloatViewDemo`项目涉及了Android应用开发中的多个关键知识点,包括权限管理、窗口管理、自定义View、触摸事件处理以及兼容性测试等。通过学习和实践这个项目,开发者可以深入理解Android系统的工作原理...

    android桌面浮动窗口实现

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

    android 浮动窗体

    总之,实现Android的浮动窗体需要理解权限管理、视图绘制、窗口管理、事件处理等多个方面的知识。通过以上步骤,开发者可以创建出功能丰富且易于使用的悬浮窗应用。在实际开发中,还需注意兼容性问题,确保应用在...

    FloatView-master_rapidlyqnn_来电秀_android_

    2. **FloatView**:这是一个自定义视图库,可以让开发者在屏幕上添加浮动元素,比如在来电时显示自定义的UI元素。FloatView库可能封装了动画处理、触摸事件处理等复杂逻辑。 3. **来电监听**:项目需要监听电话状态...

    Android仿苹果siri 浮动控件

    总的来说,创建“Android仿苹果Siri浮动物件”主要涉及`WindowManager`的使用、自定义视图的实现以及触摸事件的处理。通过灵活运用这些技术,开发者可以构建出具有高度交互性和个性化特色的浮动物件,提升用户体验。

    Android浮动窗口

    总的来说,创建Android浮动窗口涉及到多个知识点,包括权限管理、自定义服务、窗口管理器的使用、视图布局以及触摸事件处理。通过合理地组合这些技术,我们可以构建出具有实用价值的悬浮窗口应用,如360悬浮窗口。

    Android视频浮动窗口源码.zip

    在Android平台上,实现视频浮动窗口(也称为悬浮窗或悬浮播放器)是一项常见的需求,尤其在开发媒体应用或者需要在后台播放视频的功能时。这个"Android视频浮动窗口源码.zip"压缩包很可能是提供了一个实现此类功能的...

    android 顶层 可浮动 悬浮窗 源代码

    在Android开发中,"顶层可浮动悬浮窗"通常被称为悬浮应用窗口或者小部件,它可以在用户界面的最上层自由移动,并且不依赖于任何特定的活动或窗口。这种技术常用于实现各种辅助功能,如屏幕录制、音乐播放控制器、...

    可自动移动和手动移动的浮动窗口

    在Android开发中,浮动窗口(通常称为悬浮窗或者系统级通知)是一种可以在用户界面上自由移动的小型窗口,常用于实现如聊天头像、音乐播放控制器等应用功能。本项目"可自动移动和手动移动的浮动窗口"提供了一个完整...

    floatview 参考代码

    在IT行业中,FloatView通常指的是浮窗视图,它是一种可以在屏幕顶部或其他位置浮动显示的小窗口,常用于即时消息、快捷操作或者系统通知等场景。浮窗视图的设计旨在提高用户体验,让用户在进行其他操作的同时可以...

    360浮动窗口效果

    在Android开发中,360浮动窗口效果是一种常见的交互设计,它允许应用在屏幕上显示一个悬浮的小窗口,用户可以自由移动、缩放该窗口,...通过分析和实践这些代码,你可以更好地理解和掌握Android浮动窗口的实现原理。

    FloatViewDemo

    总结来说,实现Android浮动窗体主要涉及`WindowManager`的使用、自定义布局的设计、`LayoutParams`的配置以及触摸事件的处理。理解并熟练掌握这些知识点,对于开发具有悬浮窗功能的Android应用至关重要。

    Android应用源码之drag-sort-listview-master.rar

    拖动过程中,`DragSortController`通过创建一个浮动视图(floatView)来模拟被拖动的列表项,同时隐藏原始视图,从而实现视觉上的拖动效果。浮动视图的位置通过持续的触摸事件更新,确保其跟随用户的手指移动。 2. ...

    Android 悬浮窗 可点击

    在Android开发中,悬浮窗(Floating Window)通常被称为系统级通知或者系统挂载窗口,它是一种可以在用户界面上层浮动显示的小窗口,常用于实时显示信息或者提供快捷操作。本篇将详细介绍如何创建一个可点击的...

    android仿assistivetouch悬浮窗(带功能实现)

    总的来说,创建一个仿 AssistiveTouch 的悬浮窗涉及到了Android的权限管理、窗口管理、自定义View以及事件处理等多个核心知识点。通过实践和学习这些概念,开发者可以构建出更加高效、便捷的用户体验。

    Android-游戏悬浮球示例

    悬浮窗口是Android系统中的一种特殊类型的窗口,它可以覆盖在其他应用之上,提供浮动的交互体验。要创建悬浮窗口,我们需要继承`Service`类并重写`onStartCommand()`方法,同时使用`WindowManager`来添加和管理悬浮...

Global site tag (gtag.js) - Google Analytics