背景があり、ビューをスライドできるViewPagerを含むFrameLayoutがあります。また、ViewPagerのマスクとして使用したいPNG画像があります。これにより、背景を保持できますが、ViewPager要素の一部のみが表示されます。基本的に、ここに示すようなカスタムマスキング効果を作成したいのですが、それを画像に適用する代わりに、ビューに適用したいと思います。これどうやってするの?
私は始めました:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:padding="4dip"
android:gravity="center_horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<ImageView
android:layout_width="fill_parent"
android:layout_height="match_parent"
android:scaleType="fitXY"
android:src="@drawable/mask"/>
</FrameLayout>
私が使用している画像は、基本的にPNGファイルに切り欠きがあるため、透明な部分があります。この手法を使用する場合の問題は、画像の一部にグラデーションがあることです。適切なマスクを行うことで、キャラクターが「フェードイン」することを期待していましたが、代わりに、表示されている場所の端が見えるように、はっきりと表示されているため、きれいではありません。誰かがそれをきれいにマスクする方法についてより良いアイデアを持っているなら、私は彼らにオープンです...