天天看點

用Xamarin 實作園友的 :Android浮動小球與開機自啟動

我不會 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 要這樣寫:

後面那兩個接口不是必須的。

IntentFilter 也不是必須的。

運作這個 Service ,要在 MainActivity 裡這樣寫:

在 Service 裡, 如果想擷取到 WindowManager 要這樣寫:

注意,不是簡單的強制類型轉換, 一定要用 JavaCast

給 WindowManager 添加一個子視圖

這個真是有點造蛋啊。一開始沒有設定 LayoutParameter 的 Type

一直報這個錯:

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。

其實我是想顯示出來一個圓型的圖檔出來。。

請問該如何實作?

謝謝圍觀。

繼續閱讀