14

Android アプリの半透明の背景を作成する方法を見つけましたが、これまでのところ、その背後にあるもの (ホーム画面など) と対話する方法が見つかりませんでした。

この投稿は、アプリ ビューを半透明にするのに役立ちました。

ユーザーが半透明アプリの背後にあるものと対話できるようにするにはどうすればよいでしょうか? このアプリは、これを可能にするアプリの良い例です。「透明な画面」の Android アプリです。

4

3 に答える 3

13

ビューのスタックを理解するための非常に簡単な方法は、本 (任意の本) を取ることです。各ページをビューと考えてください。

視認性

  • 本を開くと、ページが表示されます (メイン ビュー - VISIBLE)
  • 現在のページをめくると、次のページが表示されます ( INVISIBLE- Main View は次のビューを表示します。ビューを非表示にするだけであることに注意してください。可視性をGONEこれに設定すると、現在のページを引き裂いて次のページを表示することと同じになります。 .)

タッチ シナリオ

  • 最初のページがワックス ページ (半透明のビューに似た半透明のページ) であると仮定すると、下にあるページを見ることができます。
  • 2 ページ目の図に触れようとすると、2 ページ目の図は見えますが、1 ページ目を触っていることになります。1ページ目から2ページ目の図に触れることはできません。

それはあなたが扱うビューであり、あなたがやりたいことをまだ行うことができる論文ではないので、がっかりしないでください:)

  • View.OnTouchListener両方のビューに実装する
  • 取得したタッチ イベントを半透明で表示するFALSEには、メソッドで戻りますonTouch
  • Android はタッチ イベントを基になるビューに渡します。
于 2012-07-24T17:29:59.153 に答える
0

FLAG_NOT_TOUCH_MODALは、最小限のコードで必要なことを行います。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL);
    ...
    setContentView(R.layout.my_activity_view);
    ...
}

public static final int FLAG_NOT_TOUCH_MODAL

ウィンドウ フラグ: このウィンドウがフォーカス可能 (その {@link FLAG_NOT_FOCUSABLE が設定されていない) であっても、ウィンドウの外側にあるポインター イベントを背後のウィンドウに送信できるようにします。それ以外の場合は、ウィンドウ内にあるかどうかに関係なく、すべてのポインター イベント自体を消費します。

于 2018-11-05T03:12:06.160 に答える