用Xamarin 实现园友的 :Android浮动小球与开机自启动
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了用Xamarin 实现园友的 :Android浮动小球与开机自启动,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1729字,纯文字阅读大概需要3分钟。
内容图文
原文:用Xamarin 实现园友的 :Android浮动小球与开机自启动前两天看园子里有筒子写了个 Android浮动小球与开机自启动 , 感觉这种被 360 玩烂的功能原来是如此的简单啊。。。
我不会 Java, 当然也不懂如何 用 ADT 开发 Android App.
但是我看过几天 Xamarin 啊,C# 我还是会的。。
用 Xamarin 做Android , 只要对着 java 源码, 我还是能翻译一份出来的。
我第一时间安装了 VS2015 , 挺好的,自带的 Android 模拟器, 比那个第三方的 Genymotion 模拟器快很多!
不过 Xamarin 依然是收费的, 但是在镇上,大家都知道,哈哈。
先上个图给大家看看我翻译的结果:
照例,源码:
https://github.com/gruan01/Xamarin-Example/tree/master/FloatBall
Xamarin 声明一个 Service 要这样写:
1namespace FloatBall { 2 [Service] 3 [IntentFilter(newstring[] { "Xamarin.BallService" })] 4publicclass BallService : Service, View.IOnTouchListener, View.IOnClickListener {
后面那两个接口不是必须的。
IntentFilter 也不是必须的。
运行这个 Service ,要在 MainActivity 里这样写:
1protectedoverridevoid OnCreate(Bundle bundle) { 2base.OnCreate(bundle); 3 。。。 4 。。。 5 6this.Finish(); 7 8//var intent = new Intent(Application.Context, typeof(BallService)); 9var intent = new Intent("Xamarin.BallService"); 10this.StartService(intent); 11 }
在 Service 里, 如果想获取到 WindowManager 要这样写:
1private IWindowManager WindowManager { 2get { 3//不是简单的类型转换,一定要用 JavaCast4returnthis.GetSystemService(Context.WindowService).JavaCast<IWindowManager>(); 5 } 6 }
注意,不是简单的强制类型转换, 一定要用 JavaCast
给 WindowManager 添加一个子视图
这个真是有点造蛋啊。一开始没有设置 LayoutParameter 的 Type
param.Type = WindowManagerTypes.Phone;
一直报这个错:
android.view.WindowManager$BadTokenException: Unable to add window — token null is not for an application
搜了好多网页,说的基本上都一样, 只是不适用我这个场景。
后来仔细看了一下园友的文章,发现少了 param.Type 这个参数。。。,加上就OK了!
我能说这是个奇葩吗?
FrameLayout & Animation
不明白为什么Animation 应到 FrameLayout 上,为什么一点作用都不起。
应用到 ImageView 上效果立马就出来了。
不知道是我写法不对,还是错觉。
最后请教一下:
如图所示,我对 FrameLayout 做了 ShapeDrawable。
其实我是想显示出来一个圆型的图片出来。。
请问该如何实现?
谢谢围观。
原文:http://www.cnblogs.com/lonelyxmas/p/4675249.html
内容总结
以上是互联网集市为您收集整理的用Xamarin 实现园友的 :Android浮动小球与开机自启动全部内容,希望文章能够帮你解决用Xamarin 实现园友的 :Android浮动小球与开机自启动所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。