- 浏览: 62499 次
- 性别:
- 来自: 黑龙江
最新评论
-
麦田的设计者:
“所以我们继续进入到performTraversals()方法 ...
备忘(View显示流程1-View draw的准备工作) -
麦田的设计者:
在金山工作?
Android 检测手机是否允许弹出悬浮窗 -
yefengxue:
...
备忘(View显示流程1-View draw的准备工作) -
shadaiodewangwei:
这个问题后来怎么解决的呢》?
Android广播控制音乐播放器中的小问题 -
jason_zmq:
多谢博主,呵呵,正好碰到个这样的问题,提醒了我,给了我思路,多 ...
Android动画被父View遮挡的解决办法。
文章列表
如今手机大多数都是用各个厂商定制的ROM,大部分Rom都添加了是否允许弹出悬浮窗的权限(小米,魅族,乐视等等)。这里提供一个方法来让app自己检查自己是否允许弹出悬浮窗。代码为了独立舍弃了一些优化方法,大家可以自行根据情况修改。
/**
* 检测当前是否可以显示悬浮窗(与是否有悬浮窗权限有一定区别 华为手机当有activity存在时,无论是否有权限都允许弹出悬浮窗。)
* @param context
* @param result {@link }
* @return true 开始检测 false检测失败
*/
...
用于备忘记录:
1. FragmentTransaction对于Fragment的show与hide不会触发任何Fragment的生命周期,只是单纯的将Fragment的View隐藏与显示。暂时没有找到方便的监控方法。但是通过Fragment的isVisible与isHidden可以判断该Fragment当前处于什么状态。
2. Attach与detach方法会触发Fragment的onCreateView与onDestroyView的生命周期,同时使用Fragment中的rootView(onCreateView创建的view)的addOnAttachStateChangeLis ...
Android相关
1.获取系统或其他包的资源文件ID
Resources.getSystem().getIdentifier("status_bar_height", "dimen", "android");
2.如果想一次启动多个Activity,即一次启动一个ActivityTask。使用TaskStackBuilder即可。
TaskStackBuilder stackBuilder = TaskStackBuilder.create(context);
stackBuilder.a ...
由于项目需要,很多时候使用新进程来运行服务等类似的需要,一般常用android:process=":newProcess"的方法。但是在android每新启动一个进程都需要重新加载Application的onCreate方法。我们就需要在onCreate里区分进程的名称来进行有选择性的加载一些资源。但是使用普通的context.getApplicationInfo.processName的方法都只能得到包名,无法区分同个包的进程。这里介绍一种其他可用的方法。
public String getProcessName(Context context) {
...
Android的Animation动画想必大家非常熟悉,也相对是比较好用的动画方式。但是这个动画有个很大的缺点,这个动画无法再使用动画的View的父组件之外使用。这个是Animation的实现方式导致的,由于View是由其父组件绘制,而Anima ...
这是一篇写给自己用于备忘的文字。所以内容上比较跳跃,不建议作为参考。使用代码版本Android4.4.
首先Activity的加载不归我们管辖,所以View的展示可以说是从Activity的setContentView()开始的,这个方法最终会走到Phon ...
Debug是一个非常方便调试代码的方式,android开发也不例外。当然最完美的方法是直接下载android的源代码自己make出jar包来跑,无论是烧进机器还是使用虚拟机都很灵活。但是make源码还是比较麻烦的。所以如果没有需要修改源码的需求的话,这里可以使用一种简单的方法。
我们经常使用debug来调试普通的工程代码。由于android的开源,对于一些Api或者某些功能的实现,我们都可以通过看源码来更深入的了解,近而更好的使用它们。但是有些时候单纯的读源码却很麻烦,尤其是涉及到动态数据的时候,有些参数比较复杂难以追溯其根源,而我们又想拿到他在运行时的状态,debu ...
下面是我对实现过程的总结,看实现方式请直接到博客最后即可。
=====================================过程总结======================================
上几篇博客简单说明了我制作一个远程控制音乐播放软件的方式,目的其实就是想要实现在锁屏界面自由控制音乐的播放与暂停。但是却遇到了很多阻碍,这个前面几篇已经说过,一些常见问题都写了解答。问题的原因其实都是出在控制广播的版本适配上面。由于不用版本接受MediaButton事件广播的处理机制不同,导致出现了一系列问题。这里我准备介绍一种新的方式来实现 ...
如下是我自己研究过程的总结,想知道结果的直接看最后即可。
==============================过程总结==========================================
在上篇博客中我写到,在远程控制音乐软件的实现中,我在4.4系统里遇到了问题。需要获取到当前播放的音乐软件的包名才能解决。就在进行了一定时间的查找,意外的发现android貌似没有提供这样的api。这一下我一下丢失了方向。甚至想到直接获取系统中所有的包名,直接搜索常用音乐软件来草草完成。
最后由于时间比较充裕,就多研究了一段时间,突然想到, ...
android的广播分为静态注册和动态注册两种方式,具体的操作方式网上有非常多的案例。这里主要记录一下他们的一些特殊的小知识。
1.动态注册和静态注册可以同时进行,简单来说就是使用一个Receiver分别在AndroidManifast中进行注册,又写入在程序中用代码注册(无论Action是否相同),两种注册方式不会造成影响。动态注册只会在程序存在时执行,静态注册一直执行。哪怕是完全相同的Receiver。即如果程序存在,该Receiver会被执行两次。
2.动态注册使用同一个Receiver对象,从开始创建直到其被解除注册。会使用同一个Receiver,无论这个广播被触发 ...
本来只想做一个简单的锁屏界面控制音频APP播放音乐的快捷方式。方便在锁屏页面操作音乐软件暂停,下一曲等功能,主体功能实现并不复杂。
由于有一些外接耳机上带有类似的一些功能按钮,Android系统为 ...
今天刚刚拿到金山的offer,还是比较开心呢。就仿照一下学长们,把这次的经历写出来。也为了以后能多一份回忆吧。实现说明,这纯是我的经历而不是什么经验,虽然有些实习经验融在其中,但主要是想把完整的 ...
java与c的一些感想
- 博客分类:
- 个人感想
由于专业的原因,我到了大三下学期的后半段才学习数据结构。虽然以往学习编程的时候也有接触,这次也算是系统的学了一下。不过我们的数据结构课程是以c语言为基础讲的。而我的c语言还一直停留在大一的阶段。 ...
Java类的反射与动态加载
- 博客分类:
- java知识总结
java的反射机制我也是刚刚了解。只能算初学。这里写下这些纯是为了以后查看方便。所以没什么心得,纯粹是一些知识整理,和我做的一点总结的代码。
反射,说起来挺高端。其实内容却是很简单的。由于类 ...
Java远程控制简单实现
- 博客分类:
- java知识总结
本意是使用在Android平台的。但由于还不熟练就在PC端先测试写了一个(附代码)。远程控制大家都知道,qq上就可以使用。咋一听还感觉很高端。稍微一研究发现,原来是十分简单的。其中的关键思路无非就3点。1.主控端与被控端的通信。2.被控端高频率截屏(每秒10到30即可)。并发送给主控端显示。3主控端将自己在界面上的鼠标键盘事件发送给被控端接收并控制自己的键鼠。
第一点没什么好说的就用基本的Socket通信就可以很容易做到。
第二点也没什么难度,就是使用一个Robot类截取屏幕,这个截屏方式在画图板上也有过使用。然后用自己规定的协议打包发送即 ...