用Xamarin 实现园友的 :Android浮动小球与开机自启动

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

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

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

IntentFilter 也不是必须的。

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

 1 protected override void OnCreate(Bundle bundle) {
 2             base.OnCreate(bundle);
 3            。。。
 4            。。。
 5
 6             this.Finish();
 7
 8             //var intent = new Intent(Application.Context, typeof(BallService));
 9             var intent = new Intent("Xamarin.BallService");
10             this.StartService(intent);
11         }

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

1 private IWindowManager WindowManager {
2             get {
3                 //不是简单的类型转换,一定要用 JavaCast
4                 return this.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。

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

请问该如何实现?

谢谢围观。

时间: 2024-11-16 20:01:32

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

Android浮动小球与开机自启动

看着手机上的360浮动小球,不评价其具体的功能与实用性,至少在UI设计与交互方面是个不小的创新. 如图片左上角所示,球中还会显示当前手机的运行状况,向下拉动还会有弹射来达到加速.清理等目的. 那好,先来实现一个类似的小球(仅限于形状,功能你懂得). 查阅了相关资料,整个界面除了小球以外,其他部分均是做透明处理. 1.由于用到了CompatModeWrapper,所以需要在AndroidManifest.xml中添加以下权限: 1 <uses-permission android:name="

Android 广播(Broadcast)程序开机自启动

学习这个“通过广播开机自启动”知识点时忽略了手机本身“设置”里面自启动权限的没有打开,害得我思考好久. BootTestActivity.class package com.xxx.study; import android.os.Bundle; import android.app.Activity; import android.view.Menu; public class BootTestActivity extends Activity { @Override protected vo

Android 开机自启动应用

Android启动时,会发出一个系统广播 ACTION_BOOT_COMPLETED,它的字符串常量表示为 “android.intent.action.BOOT_COMPLETED” 开机自启动程序,只需要“捕捉”到这个消息再启动你的程序即可,我们要做的是接收这个消息,并实现一个BroadcastReceiver. 1 :xml 配置 在AndroidManifest.xml中Application节点内,添加自定义的广播类: 1 <receiver android:name=".Boo

开源一款私藏Management Studio插件,ProjkyAddin,送给所有使用SQLServer的园友们

ProjkyAddin 是一款Management Studio 插件,安装包才500多kb,兼容SSMS 2005.SSMS 2008.SSMS 2008 R2.SSMS 2012.SSMS 2014,功能是为硬盘上的脚本文件在Management Studio工具栏中提供一个快捷方式,直接点击快捷方式的按钮就能在当前查询窗口(若没有,则新建一个查询窗口)添加脚本内容.开放源码,可以根据需要自己定制加载脚本内容的部分.类似于IE浏览器的收藏夹栏功能. 有了这个插件,就能将常用的脚本直接在Man

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

前言 上一篇文章匹夫通过CIL代码简析了一下C#函数调用的话题.虽然点击进来的童鞋并不如匹夫预料的那么多,但也还是有一些挺有质量的来自园友的回复.这不,就有一个园友提出了这样一个代码,这段代码如果被编译成CIL代码的话,对虚函数的调用会使用call而非callvirt: override string ToString() { return Base.ToString(); } 至于为何是这样,匹夫在回复中也做了解释,因为上面那段代码其实相当于是这样的: override string ToSt

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

昨晚由于时间的原因只写了一部分内容,今天将这一部分内容补充完毕,多谢各位园友的支持. 这是用C#开发的双色球走势图(原创)值得园友拥有 新的园友可以看昨晚写的内容,以免脱节.首先回复园友的评论,有说好的有说不好的,本人不管你说好还是不好,根本不影响个人写这篇博客,写这篇博客主要目的还是与大家交流技术,仅供交流和学习,本人花在这上面的时间的大楷也就是一个星期的晚上时间(星期一到星期五晚上)和周末(周六周日)的时间而已,并没有花费更多的时间:关于公布源码的问题,本人会在稍后公布,由于现在我的源码集成

用C#开发的双色球走势图(原创)值得园友拥有

首先声明,个人纯粹无聊之作,不作商业用途. 我相信每个人都拥有一个梦想那就是有朝一日能中500W,这个也一直是我的梦想,并默默每一期双色球或多或少要贡献自己一点点力量,本人并不属于那种铁杆的彩票迷,每次都是纯粹娱乐而已,因为深知这个中奖的概率太低了,每一次买也是随机而已,运气好的话还能中个五块钱,运气不好的话随机买五注,甚至一个号码也中不到,每次去购买双色球都会看到走势图,所以个人最近就花了一点时间在这个上面,进行了一番研究,现将研究成果写出来,供园友一起探讨,愿各位早日中500W. 双色球开奖

园友提供的绚丽的桌面程序框架

一 使用CEF的NanUI <NanUI for Winform发布,让Winform界面设计拥有无限可能>,从此使用html+css开发winform程序 http://www.cnblogs.com/linxuanchen/p/ChromiumFX-based-NanUI-for-Winform-has-been-published.html 二   让WPF更加出彩的AYUI 园友制作的WPF皮肤,实现大公司的出彩效果. http://www.ayjs.net/ . http://www

从园友留言到动手实现C#虚函数机制

上一篇文章匹夫通过CIL代码简析了一下C#函数调用的话题.虽然点击进来的童鞋并不如匹夫预料的那么多,但也还是有一些挺有质量的来自园友的回复.这不,就有一个园友提出了这样一个代码,这段代码如果被编译成CIL代码的话,对虚函数的调用会使用call而非callvirt: override string ToString() { return Base.ToString(); } 至于为何是这样,匹夫在回复中也做了解释,因为上面那段代码其实相当于是这样的: http://paradise.ezla.co