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

前两天看园子里有筒子写了个 Android浮动小球与开机自启动 , 感觉这种被 360 玩烂的功能原来是如此的简单啊。。。

我不会 Java, 当然也不懂如何 用 ADT 开发 Android App.

但是我看过几天 Xamarin 啊,C# 我还是会的。。

用 Xamarin 做Android , 只要对着 java 源码, 我还是能翻译一份出来的。

我第一时间安装了 VS2015 , 挺好的,自带的 Android 模拟器, 比那个第三方的Genymotion 模拟器快很多

不过 Xamarin 依然是收费的, 但是在镇上,大家都知道,哈哈。

先上个图给大家看看我翻译的结果:

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

照例,源码:

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                 //不是简单的类型转换,一定要用 JavaCast4                 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。

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

请问该如何实现?

谢谢围观。

更多相关文章

  1. 70个具有商业实战性的精品Android源码
  2. ArcGIS for Android 支持模拟器开发
  3. Ubuntu-18.04 LTS配置android系统源码编译环境
  4. 短视频平台源码android四种不同的事件实现
  5. Android之辅助服务下篇————AccessibilityServic源码分析
  6. [Android实例] Android网络收音机项目(内含源码)

随机推荐

  1. android图片旋转处理
  2. Android图解浅析事件拦截机制
  3. Android对中文url编码
  4. Android机顶盒的迅雷离线+aria2+yaww的方
  5. Android弹幕实现:基于B站弹幕开源系统(6)带
  6. 【Android(安卓)Training - 09】高效地显
  7. Android(安卓)腾讯Bugly的应用升级&热更
  8. latex/Xelatex书籍排版总结---顺便附上一
  9. Android之Http网络编程(二)
  10. 【Android】SQLiteOpenHelper类(sql语句