当前位置: 首页 > news >正文

有哪些做兼职的设计网站有哪些工作内容/seo互联网营销培训

有哪些做兼职的设计网站有哪些工作内容,seo互联网营销培训,头像设计logo,网站建设答辩ppt要点做过Window程序开发的朋友应该都知道,我们要把程序窗口置顶很简单,只要设置一些窗口属性即可。但是到了Android,你无法简单设置一个属性,就让Android的Activity置顶。因为只要有新的Activity启动,你的Activity界面就会…

做过Window程序开发的朋友应该都知道,我们要把程序窗口置顶很简单,只要设置一些窗口属性即可。但是到了Android,你无法简单设置一个属性,就让Android的Activity置顶。因为只要有新的Activity启动,你的Activity界面就会被挡住。今天介绍一下如何把一个窗口置顶。

也许会有人说:你的窗口置顶了,就会破坏系统的稳定性,影响其他程序使用,这是流氓行为o(╯□╰)o 。对于这个问题,如果你的顶层窗口没有处理好,的确会有这个问题。不过对于一些定制系统来说,这个功能可以实现很有用的功能,例如:对于一些需要长时间提示用户的危险警告。例如下面效果图,在浏览图片的时候,系统弹出一个警告框,会一直提示用户注意安全,就算切换到其他程序,这个提示框也会一直在顶层。

(PS:新建的QQ群,有兴趣可以加入一起讨论:Android群:322599434)

1、WindowManager介绍

全部Android的窗口机制是基于一个叫做WindowManager实现,这个接口可以添加view到屏幕,也可以从屏幕删除view。它面向的对象一端是屏幕,另一端就是View,直接忽视我们以前的Activity或者Dialog之类的元素。其实我们的Activity或者Diolog底层的实现也是经过WindowManager,WindowManager是全局的,整个系统只有一个WindowManager。它是显示View的最底层了。WindowManager主要用来管理窗口的一些状态、属性、view增加、删除、更新、窗口顺序、消息收集和处理等。通过Context.getSystemService(Context.WINDOW_SERVICE)的方式可以获得WindowManager的实例.WindowManager继承自ViewManager,里面涉及到窗口管理的三个重要方法,分别是

addView();

updateViewLayout();

removeView();

在WindowManager中还有一个重要的静态类LayoutParams。通过它可以设置和获得当前窗口的一些属性。我们先来看看addView()方法,在addView中,会利用LayoutParams获得window的View属性,并为每个window创ViewRoot,ViewRoot是View和WindowManager之间的桥梁,真正把View传递给WindowManager的是通过ViewRoot的setView()方法,ViewRoot实现了View和WindowManager之间的消息传递。在将主窗口添加到WindowManger时,它首先会建立一个代理对象:

wm=(WindowManagerImpl)context.getSystemService(Context.WINDOW_SERVICE)

并且打开会话(IWindowSession),之后Window将通过该会话与WindowManager建立联系。

2、使用WindowManager实现浮动窗口

//Edited by mythou

private voidcreateFloatView()

{

Button btn_floatView= newButton()

btn_floatView= newButton(getApplicationContext());

btn_floatView.setText("悬浮窗");

wm=(WindowManager) getApplicationContext().getSystemService(

Context.WINDOW_SERVICE);params = newWindowManager.LayoutParams();//设置window type

params.type =WindowManager.LayoutParams.TYPE_SYSTEM_ALERT;/** 如果设置为params.type = WindowManager.LayoutParams.TYPE_PHONE; 那么优先级会降低一些,

* 即拉下通知栏不可见*/

params.format = PixelFormat.RGBA_8888; //设置图片格式,效果为背景透明//设置Window flag

params.flags =WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL|WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE;/** 下面的flags属性的效果形同“锁定”。 悬浮窗不可触摸,不接受任何事件,同时不影响后面的事件响应。

* wmParams.flags=LayoutParams.FLAG_NOT_TOUCH_MODAL |

* LayoutParams.FLAG_NOT_FOCUSABLE | LayoutParams.FLAG_NOT_TOUCHABLE;*/

//设置悬浮窗的长得宽

params.width = 100;params.height = 100;//设置悬浮窗的Touch监听

btn_floatView.setOnTouchListener(newOnTouchListener()

{intlastX, lastY;intparamX, paramY;public boolean onTouch(View v, MotionEvent event)

{switch (event.getAction())

{caseMotionEvent.ACTION_DOWN:

lastX= (int) event.getRawX();

lastY= (int) event.getRawY();

paramX= params.x;

paramY= params.y;break;caseMotionEvent.ACTION_MOVE:int dx = (int) event.getRawX() -lastX;int dy = (int) event.getRawY() -lastY;params.x = paramX +dx;params.y = paramY +dy;//更新悬浮窗位置

wm.updateViewLayout(btn_floatView, params);break;

}return true;

}

});

wm.addView(btn_floatView,params);

isAdded= true;

}

上面是一段创建一个浮动窗口的代码,主要就是使用了WindowManager的addView方法,把我们创建的一个View添加到WindowManager里面去。除了使用上面的代码动态创建一个View,我们也可以直接加载某个XML文件,然后生成一个View,我们平常使用的XML布局文件解析完,都是能生成一个View对象,因此我们可以直接编写一个布局文件然后使用LayoutInflater来加载对应的View。例如下面的代码:

//Edited by mythou

from(getApplicationContext());

//加载需要的XML布局文件

RelativeLayout mInView= (RelativeLayout)inflater.inflate(R.layout.in_vedio, null, false);

//......

//添加到WindowManager里面wm.addView(btn_floatView, params);

如果需要实现一个全屏置顶的窗口,只要编写一个全屏的XML配置文件即可,跟我们在Activity里面使用的XML配置界面一样。

3、注意事项

在使用WindowManager的时候有一点需要注意的是,你只能把父节点的View添加到WindowManager里面,也就是说,你要添加的View不能是已经有父节点的某个子节点,否则会出现下面的问题:

4、结语

上面就是创建一个顶层窗口或者浮动窗口的大致流程。之所以研究这个,我并不是为了做浮动窗口,而是为了做浮动视频播放,这个下次有空,再写一篇如何做浮动视频播放的文章。

最后补充一点,不要轻易使用全屏置顶的方法,因为这个会影响你系统其它程序的运行。特别是你的View设置为透明和全屏置顶,会导致界面无法操作。

Edited by mythou

http://www.lbrq.cn/news/1435933.html

相关文章:

  • 做赌场网站代理/全网推广系统
  • 亚马逊deal网站怎么做/郑州百度推广公司地址
  • 南乐网站建设/今日的重大新闻
  • 网站制作收费标准/石家庄疫情
  • 做食品团购去那家网站好/广告网络
  • 如何做网站关键词收录/东莞做网站公司
  • 回老家做PHP网站/网络营销主要是学什么的
  • 西安 网站 公司/西安关键词排名首页
  • 如和做视频解析网站/智慧软文发稿平台
  • 手机网站建设报价多少/公司推广方案
  • 微信h5页面制作免费/西安抖音seo
  • 互联网是什么/重庆网站搜索引擎seo
  • 牡丹江制作网站/搜索营销
  • web前端网站开发实例/郑州网络营销策划
  • 南宁网站建设_seo优化服务公司/美国seo薪酬
  • 最简单的网站怎么做/百度关键词怎么设置
  • 小米盒子做网站/新站如何快速收录
  • 永嘉高端网站建设效果/近期新闻大事
  • 网站建设费财务列账/下载百度2023最新版安装
  • 番禺网站建设策划/百度推广的步骤
  • 滤芯网站怎么做/seo优化工作内容做什么
  • java手机网站怎么做的/今日军事新闻头条打仗
  • 做婚庆网站的想法/建一个外贸独立站大约多少钱
  • 网站建设和应用的情况/北京网站设计公司
  • seo 网站太小/网站流量统计分析的维度包括
  • 网站 301/辅导机构
  • 易语言 做的网站/今日新闻国家大事
  • 苏州注册公司代办费用/东莞seo网站管理
  • 科技副总/徐州seo
  • 深圳知名网站建设公司/免费网站seo诊断
  • 表达式树实战:Unity动态逻辑编程
  • 前端css学习笔记4:常用样式设置
  • 【超详细!题解|两种做法】洛谷P3196 [HNOI2008] 神奇的国度[MCS算法]
  • 计算机网络1-7:第一章 概述 章节小结
  • 一键生成 Android 适配不同分辨率尺寸的图片
  • 【深度学习3】向量化(Vectorization)