Mono for Android
止まっているのかと勘違いするほどクソ遅いARM版ICSエミュレータでMono for Androidアプリを開発するのは非常にストレスがある。エミュレータの起動まではスナップショットを使えば回避できるが、ビルド->転送->実行->ブレーク->ステップ等はとてつもなく遅…
Mono for Androidはそのフレームワーク内のほぼ全てのクラスがIDisposableを持っている。よって.NETの基本的ルールとして生成したインスタンスは明示的にDisposeするべきである。しかしDisposeしてもなおメモリリークするパターンも存在している。それをまと…
Androidエミュレータを使って開発中、ログに GREF has increased to 2001が表示される事が多くなった。 これはJNIのグローバルリファレンス(オブジェクトの管理テーブル)の数が制限値の2000*1を超えたので表示されている。 原因はインスタンス化したBitmapや…
設定->音->入力時バイブレーション 設定値を取得するサンプルが意外と少ないので備忘録もかねて記録しておく。 int HapticFeedbackEnabled = Android.Provider.Settings.System.GetInt(context.ContentResolver, Android.Provider.Settings.System.HapticFee…
ラジオボタンのカスタマイズで良くあるのが <RadioButton android:text="On" android:textAppearance="?android:attr/textAppearanceSmall" android:button="@null" android:gravity="center" andriud:background="@drawable/custom_radio" /> という感じでandroid:button="@null"を指定することにより本来のラジオボタンのイメージを無効にしてしまう方法。 これをコードから実現するにはSetButtonDrawab…</radiobutton>
Xamarinにも書いてある*1ようにMono for AndroidでカスタムViewをレイアウト用XMLで使うには、作成したclassに特殊なコンストラクタが必要になる。この辺は本家とほぼ同じ。 ちゃんとテンプレートが用意されている。"新規作成->Mono for Android->Android Vi…
Mono for Androidで左右のフリック操作を検出したかったのでKazzzさんが書かれたサンプルコードを移植してみた。 using Android.Views; public class FlickListener : Java.Lang.Object, View.IOnTouchListener { public enum Direction { Left, Right } pri…
モーダルダイアログを実現したくて見つけたJavaのコードサンプルで使っているCountDownLatch。 Mono for Android v1.9ではまだ実装されていなかったので自前で実装してみた。 using System; using Android; using Android.Runtime; namespace Utilty { publi…
追加したリソース(XML)をResource.designer.csに認識させるには、追加したリソースのオプションを"AndroidResource"にして一度ビルドするとResource.designer.csが更新される。
PopupWindowをそのまま表示すると味気ない黒い背景になってしまう。 一方Dialogを使うと白い罫線枠があったりしてそれっぽくなるのだが、常に画面中央に表示されたりモードレスダイアログとして使うことができない*1。 というわけでPopupWindowの外観をDialo…
AndroidManifest.xmlからmeta-dataを読み込むには本家とほぼ同じようなコードになる。 <manifest xmlns:android="http://schemas.android.com/apk/res/android" android:installLocation="internalOnly" package="TestApp"> <application android:label="TestApp" android:icon="@drawable/icon"> </application></manifest>