kamulog

xamarin.formsのネタなど

Xamarin.Forms (Android) のListViewでFFImageLoadingとNativeCellを使ってout of memoryを回避しつつ高速化するサンプル(iOSはViewCellのまま使用する)

まもなくForms.AndroidのFastRendererがstableに降りてくるとは思いますが、現時点ではXamarin.Forms.AndroidのListViewは特に画像を使用した場合のパフォーマンス悪すぎ問題があります。普通にやってたら描画が遅くてメモリリークで落ちがちなので、何らかの対策が必要です。

個人アプリの復習帳では、ListViewやTableViewのセルは全てNativeCellで処理しています。それとは別に仕事で扱ってるプロジェクトではNativeCellに加えてFFImageLoadingのCachedImageを組み合わせた対策を行いました。

そういうわけで、今回はAndroidのListViewを快適に使うためのNativeCell+FFImageLoadingのサンプルをご紹介します。

続きを読む

Xamarin.FormsのTabbedPageでNGraphicsを使ってSVGアイコンを利用したり色を変えたりのサンプル

TabbedPageやNavigationPageのアイコンは子ページのIconプロパティの値にNative側のResourceを指定して使用しますが、このIconプロパティはImageのSourceのようなImageSource型ではなくて、FileImageSource型なのでPCLのResourceを指定することができません。 他のImageはPCLで処理できるのにPageのアイコンだけNativeにそれぞれ用意するのはめんどくさいし、ついでに言うと解像度別の画像を用意するのもめんどくさいということで、個人開発のアプリ(色しらべ・復習帳)ではCustomRendererとNGraphicsを利用してPCLのResourceを使用するようにしています。

この度その部分を少し整理したのでサンプルとしてご紹介します。

続きを読む

Xamarin.FormsのAndroidでButtonのBorderやRadiusを有効化しつつFlatにするEffect

Xamarin.FormsのAndroidのButtonはデフォルトでは影があって少し立体的なものが使われるのですが、どうしても平らなボタンが欲しくなったりします。そういう時のためにButtonをFlatにするEffectを作成しました。

またXamarin.FormsのButtonにはBorderWidthやBorderColorやBorderRadiusが存在するのですが、Androidではそれらのプロパティが機能していません。(v2.3.4現在) ということでそれらのプロパティをついでに有効にする機能も入れました。

これを使えばiOSとほぼ同じようなButtonデザインにすることができます。

続きを読む