原文:用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 要这样写:

 namespace FloatBall {
[Service]
[IntentFilter(new string[] { "Xamarin.BallService" })]
public class BallService : Service, View.IOnTouchListener, View.IOnClickListener {

后面那两个接口不是必须的。

IntentFilter 也不是必须的。

运行这个 Service ,要在 MainActivity 里这样写:

 protected override void OnCreate(Bundle bundle) {
base.OnCreate(bundle);
。。。
。。。 this.Finish(); //var intent = new Intent(Application.Context, typeof(BallService));
var intent = new Intent("Xamarin.BallService");
this.StartService(intent);
}

在 Service 里, 如果想获取到 WindowManager 要这样写:

 private IWindowManager WindowManager {
get {
//不是简单的类型转换,一定要用 JavaCast
return this.GetSystemService(Context.WindowService).JavaCast<IWindowManager>();
}
}

注意,不是简单的强制类型转换, 一定要用 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。

其实我是想显示出来一个圆型的图片出来。。

请问该如何实现?

谢谢围观。

用Xamarin 实现园友的 :Android浮动小球与开机自启动的更多相关文章

  1. Android浮动小球与开机自启动

    看着手机上的360浮动小球,不评价其具体的功能与实用性,至少在UI设计与交互方面是个不小的创新. 如图片左上角所示,球中还会显示当前手机的运行状况,向下拉动还会有弹射来达到加速.清理等目的. 那好,先 ...

  2. Android 开机自启动应用

    Android启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,它的字符串常量表示为 “android.intent.action.BOOT_COMPLETED” 开机自启动程序 ...

  3. Android应用开机自启动问题

    本文主要介绍Android应用如何实现开机自启动.自启动失败的原因以及通过ADB命令模拟发送BOOT_COMPLETED开机广播. 1.Android应用如何实现开机自启动 (1) 实现一个广播类,接 ...

  4. 匹夫细说C#:从园友留言到动手实现C#虚函数机制

    前言 上一篇文章匹夫通过CIL代码简析了一下C#函数调用的话题.虽然点击进来的童鞋并不如匹夫预料的那么多,但也还是有一些挺有质量的来自园友的回复.这不,就有一个园友提出了这样一个代码,这段代码如果被编 ...

  5. 发布园友设计的新款博客皮肤BlueSky

    园友#a为大家设计了一款“简单.纯粹,一点淡雅,一点宁静”的博客皮肤——BlueSky,欢迎您的享用!感谢#a的精心设计! 如果您有兴趣为大家设计博客皮肤,请将您设计的html/css/images文 ...

  6. 回复《我要阻止做java开发的男朋友去创业型公司工作吗?》园友问题

    真的非常开心能收到这么多园友的关心,看到这么多的回复顿感身边处处充满爱.也非常感谢大家踊跃的帮我出谋划策,小女子在此有礼了! 我先来回答一下性别的问题(前面已经暴露了……),我是前端程序媛.大三时和男 ...

  7. 打开别人Xamarin项目找不到android.jar文件

    打开别人Xamarin项目找不到android.jar文件 错误信息:Could not find android.jar for API Level 23.打开非本机创建的Xamarin项目,编译的 ...

  8. android浮动搜索框

    android浮动搜索框的配置比较繁琐,需要配置好xml文件才能实现onSearchRequest()方法. 1.配置搜索的XML配置文件​,新建文件searchable.xml,保存在res/xml ...

  9. 用C#开发的双色球走势图(原创)值得园友拥有(二)接上一篇

    昨晚由于时间的原因只写了一部分内容,今天将这一部分内容补充完毕,多谢各位园友的支持. 这是用C#开发的双色球走势图(原创)值得园友拥有 新的园友可以看昨晚写的内容,以免脱节.首先回复园友的评论,有说好 ...

随机推荐

  1. node.weiChat

    微信的朋友圈分享是现在流行的推广模式,最近两天尝试了一下使用微信进行商品的分享,分享结束后我可以在自己的数据库中查询到用户是否分享成功,包括用户使用微信进行支付时的成功验证.个人觉得微信上的教程有些绕 ...

  2. Github实例教程-创建库、创建主页

    以README文件为实例,具体介绍github的使用过程 请先下载git,然后配置下面内容: ( 我的系统是debian,其它版本号的UNIX/Linux有区别),windows的临时不清楚. (一) ...

  3. Error (0xc0000225) installing Windows 8 R2 on VirtualBox

    Windows Boot Manager Windows failed to start. A recent hardware or software change might be the caus ...

  4. jade初学

    jade是一个比ejs略难得模板.express的默认模本就是jade. 今天看了一下其实不是太难~~ 笔记: jade中使用缩进来定义HTML文档的层次结构 jade不需要关闭标签 给div添加id ...

  5. mysql 数据备份

    一.备份数据库并下载到本地[db_backup.php] php代码: <?php // 数据库参数(此处测试,直接给定,项目中使用配置文件) $cfg_dbname = 'blog'; $cf ...

  6. imx:MfgTool

    MfgTool使用方法: MfgTool很妖,写进去的img的名字一定要符合配置文件里面的命名标准. 具体要参见:        MFG_TOOL\Profiles\Linux\OS Firmware ...

  7. [Swust OJ 582]--放学了,抢机子了(SPFA)

    题目链接:http://acm.swust.edu.cn/problem/0582/ Time limit(ms): 5000 Memory limit(kb): 65535   Descriptio ...

  8. 一个Sqrt函数引发的血案(转)

    作者: 码农1946  来源: 博客园  发布时间: 2013-10-09 11:37  阅读: 4556 次  推荐: 41   原文链接   [收藏]   好吧,我承认我标题党了,不过既然你来了, ...

  9. 基于FPGA的cordic算法的verilog初步实现

    最近在看cordic算法,由于还不会使用matlab,真是痛苦,一系列的笔算才大概明白了这个算法是怎么回事.于是尝试用verilog来实现.用verilog实现之前先参考软件的程序,于是先看了此博文h ...

  10. Qt之界面美化输入框(使用QSS确实非同凡响)

    我们先看下酷狗音乐的输入框效果图: 这里我们需要实现在输入框里面添加一个按钮(多个也一样),并且提供一个默认时候的文字..直接上代码好了. QHBoxLayout *lay = new QHBoxLa ...