0

アプリで拡大鏡のような機能を作成する必要があります。iPhoneの「ルーペ」効果のように!問題は、ポップアップウィンドウ内でそれを行う必要があり、それを機能させる方法がわからないことです!

ポップアップ ウィンドウには、shapeDrawables を使用して 1 つずつ生成および描画する色のグリッドが表示されます。私が欲しいのは、その色を大きく表示し、ユーザーがポップアップウィンドウ(カラーグリッド)に触れて指を動かしたときにズームすることです。アイデアは、色に追跡ズーム効果を作成して、ユーザーが現在指が置かれている色の下をよりはっきりと見ることができるようにすることです。

問題は次のとおりです。

  • このポップアップウィンドウの上に別のポップアップウィンドウを作成できないようです.Androidの制限だと思いますか?
  • 現在の shapeDrawable を変更し、サイズを変更し、境界を変更すると、有効になる前にポップアップ ウィンドウを再表示する必要があります (これはもちろん受け入れられません)。

それで、そのポップアップウィンドウの上に描画できる方法を知っている人はいますか?

編集 :

Custom Toast オブジェクトを使用してこの問題を解決しようとしましたが、うまくいきません。動作しますが、トースト オブジェクトの表示が遅くなるため、タッチ モーションがカラー グリッド上のユーザーの動きとまったく同期しません。

4

1 に答える 1

0

これが役立つかどうかはわかりませんが、2 番目のアクティビティを使用してこれを達成できる可能性があります...マニフェストに次の属性を含めると、この 2 番目のアクティビティは Android の半透明テーマを使用します:
    <activity android :theme="@android:style/Theme.Translucent">
この 2 番目のアクティビティには、レイアウトに配置したもののみが含まれるようになります。つまり...実行中の「実際の」アクティビティは、その背後に表示されます (新しいレイアウトのビューで覆われていない場所ならどこでも)。

本当にポップアップに似せたい場合は、Theme.Dialog を好むかもしれません。

このアプローチを採用する場合に留意すべきことは、おそらく新しいアクティビティで onWindowFocusChanged() をオーバーライドし、フォーカスを失った場合に finish() をオーバーライドすることです。さらに、2 つのアクティビティ間でデータを共有する方法を理解する必要があります。

于 2011-05-26T15:29:24.597 に答える