2012-07-24 9 views
13

私はアンドロイドアプリのための半透明の背景を作成する方法を見つけましたが、これまでのところ、それの後ろにあるもの(ホームスクリーンなど)とやりとりする方法を見つけていません。半透明のAndroidアプリの背後にある要素と対話するにはどうすればよいですか?

This post私はアプリビューを半透明にするのに役立ちました。

ユーザーが半透明アプリの背後にあるものとやりとりできるようにするにはどうすればよいですか? This appは、これが「透過スクリーン」Androidアプリであることを可能にするアプリの良い例です。

答えて

13

ビューの積み重ねを理解する非常に簡単な方法は、本(すべての本)を取ることです。それぞれのページを1つの視点と考えてください。

あなたはページ(メインビュー - VISIBLE)を見ることができる本を開くと可視性が

  • あなたは現在のページをめくるときは、次のページを見ることができます(INVISIBLE - メインビューを表示します次のビュー。あなたはGONEに可視性を設定している場合、これは次のページを表示するには、現在のページの引き裂きに相当し、あなただけのビューを隠していることを忘れないでください。)

タッチのシナリオを

  • あなたは2ページ目の図に触れることをしようとするときは、最初に触れている
  • あなたの最初のページには、(あなたの半透明表示に似て半ページ)ワックス・ページであると仮定しますので、基本的なページを見ることができます2番目のページに図が表示されますが、最初のページから2ページ目の人物に触れることは不可能です。

それはあなたがまだあなたがやりたいことができ、紙ではなく対処されることがあるため、落胆しないでください:)

  • ご意見
  • の両方に View.OnTouchListenerを実装半透明のビューのために
  • あなたが得るすべてのタッチイベントは、方法でFALSEを返すonTouch
  • Androidのは、あなたの基本的なビューにタッチイベントに渡します。
+0

非常によく考えられた答えをありがとう!これは私がより良い意見を理解するのに役立ちます。基礎となるビューがアンドロイドのホーム画面または別のアプリの場合、これは動作しますか?基本的なビューが自分のビューでない場合、これは異なった動作をしますか?私は今、getWindow()を入れてみました。addFlags(WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE);私のアプリのonCreateメソッドで。私がスワイプすると、下のホーム画面の更新は表示されませんが、私のアプリから戻ってくると、ホーム画面がスワイプの方向に移動しました。 – user1549332

12

私は答えを得ました。 行を追加すると、2番目のトップアクティビティ(これはトリックを透過しました)でonCreate内の の行が追加されます。

上記の解決策には問題があります。上記を使用した後、ウィンドウ全体が背景に移動します。だからあなたが完全にコントロールしたい場合は、レイアウトをもっとよく伸ばしてください。 Framelayoutをオーバーライドして 'onTouchEvent'をオーバーライドし、touch.getX()メソッドとevent.getY()メソッドを使用してタッチ位置を取得し、タッチイベントを渡す場所をfalseとして返します。親ビューに渡されます。

+2

素晴らしい。これにより透過的な活動が "desktop \ home"にも影響します – shaydel

関連する問題