21

現在表示されているものの上に画面上に通知を作成できるアプリを作りたいです。Go SMS メッセージ ポップアップのようなもの、または次の図の ChatHead のようなもの:

ここに画像の説明を入力

タッチイベントを含めて動的に描画できるとさらに良いのですが、これを行う従来または標準的な方法は何ですか?

例:

ホーム画面でも、アプリドロワーでも、他のアプリでも、クリックしたりドラッグしたりできるアイコンのようなものです。アプリ内のどこにでもドラッグできます。

4

5 に答える 5

11

あなたが探しているのは System Alert Window です。

StandOutというライブラリがあります。このようなアプリの作成に役立ちます。

于 2013-07-21T09:11:52.943 に答える
9

これを行うために新しいアクティビティは必要ありません。必要なのは、既存のアクティビティに別のビューを追加して前面に移動し、そのビューに必要なものを描画/書き込むことだけです。

この追加のビューで特別なことをしたい場合は、独自のビュー クラスを作成できます。

class DrawOnTop extends View { 
    public DrawOnTop(Context activity) { 
        super(activity);
    }

    @Override 
    protected void onDraw(Canvas canvas) {
        // put your drawing commands here
    }

}

そして、あなたは次のようなことをします

DrawOnTop mDraw = new DrawOnTop(this);
addContentView(mDraw, new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
mDraw.bringToFront();

次に、強制的に描画するには、mDraw.invalidate(); を使用する必要があります。

于 2013-04-28T15:53:30.437 に答える
1

最良の方法は、アプリケーションでサービスを開始することです。イメージ ビューを作成します。Image View の LayoutParams を設定します。サービスの作成時に、パラメーターとともにビューをウィンドウ マネージャーに追加します。

ALL SET アプリケーションが閉じられるまで、イメージはウィンドウ (すべてのアプリの任意の画面) に貼り付けられます。

イメージビューに onclicklisteners と ontouchlisteners を追加することもできます。例えば。OnClick リスナーはいくつかのアクションを実行し、Ontouchlistener は画面に沿って画像を移動します。

于 2016-08-19T10:42:08.390 に答える
1

レイアウト全体の親を RelativeLayout にすることができます。最初の子は、メイン レイアウトの「ルート」です。それ以降は、気まぐれに配置できるオーバーレイと見なすことができます。

例:

<RelativeLayout>
  <LinearLayout>
    ... Main Layout here ...
  </LinearLayout>

  <TextView left="20dip" top="20dip" text="Overlay" alpha="0.7" />
</RelativeLayout>
于 2013-04-28T15:59:49.490 に答える