新規ユーザー向けにアプリを簡単に紹介したいと思います。イントロでは、スライス (下のスクリーンショットを参照) や Youtube アプリと同様に、UI の機能を強調し、機能を説明します。
これには、画面全体の透明なオーバーレイが含まれ、画面上のビューの位置を取得して、オーバーレイで丸で囲んだり強調表示したりできると思います。オーバーレイの 1 つのセクションを非透明にする方法がわかりません。何か案は?
新規ユーザー向けにアプリを簡単に紹介したいと思います。イントロでは、スライス (下のスクリーンショットを参照) や Youtube アプリと同様に、UI の機能を強調し、機能を説明します。
これには、画面全体の透明なオーバーレイが含まれ、画面上のビューの位置を取得して、オーバーレイで丸で囲んだり強調表示したりできると思います。オーバーレイの 1 つのセクションを非透明にする方法がわかりません。何か案は?
必要な効果を可能な限り簡単な方法で得るには、新しいアセットを作成し、不透明な背景に重ねます。これにより、動的な方法をすべてのデバイスで正しく動作させるという苦労をせずに、効果の錯覚が作成されます。
レイヤーに穴を開ける動的な方法には、カスタム ビューの作成、dispatchDraw メソッドのオーバーライド、キャンバスへのカスタム マスクの適用が含まれます。キャンバスに穴を開けるには、カスタム ペイント オブジェクトを次のように作成します。
maskPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));
これとの互換性は良くないので、偽造することをお勧めします。
新しいView()を追加し、背景を70%アルファの黒に設定するだけです。フラグメントの親ViewGroupがRelativelayoutであり、bringChildToFront(MyHighlightedView)が呼び出されていることを確認してください。
overlay=new View();
overlay.setBackgroundColor(#*BLACKWITHALPHAVALUE*);
getView().addView(overlay, new LayoutParams(MATCH_PARENT,MATCH_PARENT);
getView().bringChildToFront(overlay);
getView().bringChildToFront(MyHighlightedView);