Twitterのアイコン・ヘッダーの画像切抜きアプリを作ってたんだけど、

気付いたら公式アプリでトリミングできるようになってて無駄になった!!

悲しい・・とても悲しいです・・・

 

こちら世に出ることなく終わった

アイコン

メイン画面

 

返して!3か月以上かかって、さぁテストに入るかってとこだった時間を返して!

しかしやはりTwitter公式アプリの画像切抜き機能は使いやすかった

たぶんOS5.0以上じゃないとトリミングできないっぽいけど、いまさら4.xのユーザーだけ

相手に開発する気も起きず頓挫 勉強にはなったけど・・・

 

というわけでC#とUnityの勉強を開始。3か月である程度ものにするぞー

という自戒 はぁ。。結構自信あったのに。。。

どーもこのセリフが頭から抜けきりません

オリジナルバージョンみても斉藤さんのほうが好きw

 

オリジナル

 

斉藤さん

 

ジャス!ティス!

ということでonGlobalLayout()が便利だった

どのタイミングでgetWidth/getHeightあるの?ってのだいぶ解決してると思う

これ使えるなー 今回は画像ファイルのサイズをsetImageResourceじゃなくて

手動でサイズ変更するのに使った

 

参考URL

http://www.itcowork.co.jp/blog/?p=1109

どーも最近ブログが書けなかったけど新年に書いてみる(ただし書いたのはほぼ昨日)

 

Androidの画像に関するアプリを作ってたけどどーもMemoryLeakが起きるので

一つ一つ潰しながら頑張った備忘録 やっと目途が立ってきた

 

画像系の問題ってのは察してたがLeak Canaryなるライブラリの存在を知り試してみた

アプリ起動中にメモリのリークを感知して通知してくれるという神ライブラリ

導入も超簡単

 

こんな感じで通知をくれる

 

Fragmentのreplace時のObjectAnimatorにCardFlipを導入したんだけど

Orientationの変更とCardFlip時に頻繁にリークしてるらしく手直し

だいたい特定できるのは助かるなー

 

CardFlipはこちら

 

<MyAppの構成>

表面=FragmentA(Portrait/Landscape)

裏面=FragmentB(Portrait) FragmentC(Landscape)

3Fragment構成があまりよくなかったらしく今回の解法は...

 

・Bitmapクラスは使用後必ず.recycle()(TypedArrayかなんかもそうだった気がする)

さらに極力ImageViewクラスを使用後破棄するタイミングでBackgroundDrawable(null)と

ImageResourceDrawable(null)で潰した方が良いらしい

GCに処理してもらいやすくなるのかな?

 

・FragmentAがsetRetainInstance(true)なためaddToBackStackを使用しない

─ setRetainInstanceを使用した場合はaddToBackStackは使用できないらしい

自分で試していた感じだとFragmentInstanceが2-4-8・・・と無限にできる

このためpopBackStackは使用できず毎度手動でreplace/remove/addとした

 

・ActivityはFragmentContainerのみだったのでmanifestsの該当Activityを

android:configChanges="orientation|keyboardHidden|screenSize"

としてActivityの再生成をなくした

orientation … 画面の向き変更時

keybordHidden … これを書くのは儀式的なものらしい 今回のActivityにキーボードはない

screenSize … 4.x以降に(?)できたらしくこれを書かないとorientationを書いても意味がなかった

 

・extends ApplicationのClass内、onLowMemoryにSystem.gc()を追加(おまじない)

あとPicassoやGlideを使用するといい感じにメモリも制御してくれるらしいけど

今回は使用しないことにした

 

年度初めにメモリリークのブログとはあまり縁起良くない気もするけど

気を引き締めて行こうということにして締めよう

 

Henry Ford(フォード・モーター創業者)

 

Before everything else, getting ready is the secret of success.

─ 成功の秘訣は、何よりもまず、準備すること。