ビューをマスクすることはできますか?たとえば、リストビューが楕円形の開口部内に表示されるように設計されたデザインがあるとします。ビューのマスクを作成する方法はありますか?それは別のものと呼ばれていますか?私がアンドロイドのドキュメントでマスキングするのは、キャンバスのオブジェクトや描画可能なオブジェクトをマスキングすることです。しかし、リストビューのようなインタラクティブなオブジェクトを描画可能にすることは良いアプローチになるとは思わない。これは現在対処するための制限にすぎませんか?アンドロイドでビューをマスクすることはできますか?
15
A
答えて
30
はい、それはです - あなたはあなたのビューの描画メソッドをオーバーライドする必要があります - すなわち:
......
final Path path = new Path();
path.addRoundRect(new RectF(0,0,getWidth(),getHeight()),10,10,Direction.CW);
......
@Override
protected void dispatchDraw(Canvas canvas){
canvas.clipPath(path);
super.dispatchDraw(canvas);
}
これが唯一のパスで設定された境界線であなたのビューを描画します。
10
はい、完全なレイアウトをマスクすることもできます。 恥知らずselfplug
<com.christophesmet.android.views.maskableframelayout.MaskableFrameLayout
android:id="@+id/frm_mask_animated"
android:layout_width="100dp"
app:porterduffxfermode="DST_IN"
app:mask="@drawable/animation_mask"
android:layout_height="100dp">
<ImageView android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop"
android:src="@drawable/unicorn"/>
あなたはそれをhere
関連する問題
- 1. JavascriptまたはPHPでURLをマスクすることはできますか?
- 2. RadMaskedTextBoxのマスクをjavascriptで変更することはできますか?
- 3. アンドロイドでスタンドアロンブロードキャストレシーバを作成することはできますか?
- 4. アンドロイド:親ビューを見つけることができません
- 5. phpmyadminでビューをページすることはできますか?
- 6. SVG:厚く開いたストロークでマスクすることはできますか?
- 7. アンドロイドの現在のビューから別のビューに移動することはできません
- 8. ルーティングジェネラルメソッドをビューに配線することはできますか?
- 9. ビューにデータをバインドすることはできますか?
- 10. WebビューのテキストフィールドをXCTestすることはできますか?
- 11. アンドロイド:xmlparserでxhtmlファイルを読むことはできますか?
- 12. このレイアウトをビューで構築することはできますか?
- 13. ビューからシーンに戻ることはできますか?
- 14. アンドロイドNDKでCでExceptionを捕まえることはできますか?
- 15. 部分ビューで部分ビューを読み込むことはできますか?
- 16. 私はアンドロイド上書きすることはできませんアンドロイド
- 17. アンドロイドでこのビューと呼ばれるものは何ですか?
- 18. ビューでcsvからdjangoモデルを作成することはできますか?
- 19. アンドロイドにシステムプロパティリスナーを書くことはできますか?
- 20. AndroidビューのSimpleCursorAdapterで、ギャラリービューでビットマップをリサイクルすることはできますか?
- 21. SQL Serverでnolockでビューを変更することはできますか?
- 22. リストの設定をアンドロイドで表示することはできますか?
- 23. アンドロイドでキャンバスのサイズを変更することはできますか?
- 24. サーバにsqliteデータベースをアンドロイドで保存することはできますか?
- 25. アンドロイドでアクティビティを再利用することはできますか?
- 26. アンドロイドでURLパスを取得することはできますか?
- 27. アンドロイドの別のアクティビティでアクティビティを作成することはできますか?
- 28. アンドロイド携帯でウェブサービスを実行することはできますか?
- 29. アンドロイドで複数のアプリを1つにすることはできますか?
- 30. アンドロイドのアプリストレージ全体をプログラムで取得することはできますか?
を見つけることができますまた、あなたは好きな「マスク」効果を作成し、ちょうど独自のビューにそれを入れて、問題のビューの前に/それを岩下入れることができます。 1つの特定のビューに対してこのエフェクトが必要な場合は、独自のビューを作成して描画メソッドを編集する手間が省けます。 – FoamyGuy
それは間違っているだろう、ティム。パフォーマンスが重要なモバイルプラットフォーム上に完全に不要なビュー階層を作成することで、アプリのパフォーマンスが低下します。 – asenovm
私は、パフォーマンスが悪くなることに同意します。私は、彼が1つのアクティビティの中で1つのビューにそれを適用している場合、パフォーマンスの違いはそこにあるデバイス上で人間の目には気付かれないと主張する。別のビューでそれを行うと、描画メソッドをオーバーライドできるように独自のビューを作成しようとするよりも、人によってはあまり気にならないように思えるかもしれません。私はあなたのベルトの下にいくつかを得た後にそれを行うことが自明になることを知っています。しかし、これまでにそれをやったことがないなら、私には少し難しいかもしれないようです。 – FoamyGuy