問題タブ [android-windowmanager]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - スケジュールされた期間にビューを更新する方法
スケジュールされた期間にビューを更新する方法を教えてください。たとえば、毎秒。
私が抱えている問題は、別のスレッドで実行されるタイマーを使用したときに、ビューを更新して次のエラーを発生させることができないことです。
04-08 01:19:35.910: W/dalvikvm(11040): threadid=13: キャッチされない例外で終了するスレッド (group=0x40a3e1f8) 04-08 01:19:35.910: E/AndroidRuntime(11040): 致命的な例外: スレッド-1376 04-08 01:19:35.910: E/AndroidRuntime(11040): android.view.ViewRootImpl$CalledFromWrongThreadException: ビュー階層を作成した元のスレッドのみがそのビューにアクセスできます。04-08 01:19:35.910: E/AndroidRuntime(11040): android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4039) 04-08 01:19:35.910: E/AndroidRuntime(11040): Android. view.ViewRootImpl.requestLayout(ViewRootImpl.java:709) 04-08 01:19:35.910: E/AndroidRuntime(11040): android.view.View.requestLayout(View.java:12680) 04-08 01:19: 35.910: E/AndroidRuntime(11040): android.view.View.setLayoutParams(View.java:8223) 04-08 01:19:35.910: E/AndroidRuntime(11040):
同じアクティビティまたはサービスから更新しようとすると、ハングして他に何もしません。ループで実行しているだけです。
それで、これを行う正しい方法を教えてください。または、レイヤーを更新するための回避策を教えてください。
android - Android Webview すべてのコンテンツを画面に合わせる
こんにちは、私はウェブビューを持っています。ユーザーが水平または垂直にスクロールする必要がないように、それを画面に合わせたいと思います
以前に検索したことがありますが、多くの人が次のことを提案していますが、幅を制限するだけで、ユーザーはまだ垂直にスクロールする必要があります:
スケーリング方法を使用して別の方法を試しましたが、うまくいきません..... ウィンドウの幅 (1024 ピクセル) を取得し、Web コンテンツの幅も 1024 ピクセルでした!! そのため、スケーリングは機能しませんでした....正しいスケールを取得する方法はありますか?
または....他に方法はありますか?....ありがとうございます!!
いくつかのメモ:
Web ビューをスケーリングするには:
ウィンドウの幅と高さを取得するには:
android - Android で WindowManager によって追加された View から onTouch または onClick イベントをキャッチします。
私は数日間問題に悩まされており、Google 検索では可能な解決策が枯渇し始めました。View を追加し、UndoBar ライブラリのように onTouch イベントまたは onClick イベントを受け取るクラスを作成しようとしています。問題は、View を WindowManager ではなく ViewGroup に追加しない限り、onTouch/onClick イベントが呼び出されないことです。以下は私の非動作コードです:
注意: ここで渡されるコンテキストはアクティビティ コンテキストです。
このコードを機能させるには、Activity のルート レイアウトを取得し、そこに View を追加する必要があります。私の質問は、初心者の質問かもしれませんが、代わりに WindowManager に追加された View のイベントの onTouch/onClick を取得できないのはなぜですか?
助けてくれてありがとう。
android - Android ランチャーや他のアプリの画面にフローティング レイアウトを描画し、このレイアウトのライフサイクルを管理する
携帯電話のアプリのすべての画面にフローティング レイアウトを表示したいのですが、このレイアウトの横で実行されている他のアプリに加えて、このレイアウトでアクションを実行でき、独自のアクションとイベントを受け取ることができます
そして、ここに私が望むことをするアプリがあります https://play.google.com/store/apps/details?id=com.ninja.sms
これが私が取り組んできたアプローチです: WindowManager を使用してレイアウトを描画し、サービスを使用してこのレイアウトを管理しました。
次のライブラリhttps://github.com/t0mm13b/TouchSoftlyを使用しました が、いくつか問題があります。2. サービスを起動したアクティビティが強制終了されると、レイアウトが消えます。
そのため、次のスニペットでいくつかのカスタマイズを行いました
結果は次のとおりです。レイアウトは既に描画されており、タッチ イベントを取得できますが、レイアウトが画面に表示されている間、ホーム、戻る、および最近のアプリ ボタンは機能せず、どのアプリにも影響しません。
だからまだ私が望むものを達成していません。
そして、ここに私が取り組んでいるソースコードとリポジトリがあるので、私のソースコードを確認できます https://github.com/mmelsabry/FloatingLayout
ここに別の質問があることは知っています Androidランチャーのフローティングウィジェット/オーバーレイ
しかし、それは役に立ちません
android - 画面の中央にアニメーションがあるカスタム ビューを実装する最良の方法は?
私の目標は、次のようにアプリケーションにカスタム トーストを実装することです。
「Toast」のグラビティ、レイアウト、デュレーションを設定したい (Length.SHORT/LONG だけでなく)
私がこれまでに試したこと:
windowManager オブジェクトの問題があるクラスは、Android システムのアニメーションを次の場所に実装する必要があります。
params.windowAnimations
そして、次のようにカスタムアニメーションを実装しようとしたとき:
それは私のアニメーションを実装しませんでした。
- Toast のレイアウトを追加する rootView 要素を持つクラス: この方法で、ルート ビューが FrameLayout タイプの場合にのみすべてを実装することに成功しました (他のレイアウトでは、「Toast」の重力を中央に設定できませんでした)。
誰かがこの機能を実装している場合、または私の方法のいずれかで何かが欠けている場合に私を案内していただければ幸いです。
ありがとう