はじめに

艦これメンテナンスなのでブログ書きますね 意識高いのでブログ書くことを己に強いている

FrameLayout内のViewがFrameLayoutの外に出ても描画されるようにするには

ちょっと意味わからないと思うので図で示します。

FrameLayoutの中身としてImageViewなりなんなりが入っている状態でアニメーションなりなんなりをさせてLayoutの境界線を超える場合、基本的にはLayoutの外にいった領域は描画されないようです。

実はこれが非常に微妙で、手元のAndroid2.3端末では境界の外の部分も描画されていたように見受けられたのでちょっと困惑しました。 どうもAndroid4系とAndroid2系ではmarginやpaddingの扱いが微妙に異なるっぽく、そこで機種依存を出していたような気がします。今となってはどうでもよいことなので詳しく検証してません!

結果的には以下のようにして対応しました。

なんてことないですが、ViewGroupクラスについてのリファレンスをよく読まないと気が付かない感じでつらかった。。。

ちなみに

iOS(Cocoa touch)で同じことをするには、 UIView の clipToBouds なるフィールドを@NOとかにすると良い感じっぽいです。

前職でこれを使ったUI改善を行って大満足だった事案ある