2017-08-08 15 views
0

私はImageListの代わりにいくつかのアイテムとTImagesをアイコンとして持っています(私はImageListを使用しましたが、それは非常に壊れていて、CPUはそれほど消費されません)。マルチビューファーストショー、非常に低いFPSアニメーション

アプリが開いた後、ユーザがのMas​​terButtonをタップまたはのMultiViewをスライドさせると、アプリは約1/3秒間フリーズし、スライドアニメーションは次のように表示されます。約2または3 fps、この最初のスライドの後、MultiViewは通常のfpsアニメーションに戻ります。

enter image description here

私はOnStartShowingからすべてのコードを削除しようとしたが、それは全く差はなかったです。この問題の原因は何ですか?最初のショーで読み込んでいるものを「プリロードする」方法はいくつかあります。

+2

私は、この驚くべき問題のトンと沢山の苦労を見ました。正確なシナリオではなく、必ずしもマルチビューではないが、一般的に、多くのFMXコントロールは初めてアクセスされたりアニメーションされたりすると非常に低速です。私はいつもこれを阻止するのが嫌いですが、パフォーマンスが問題であり、あなたがAndroidをターゲットにするつもりならば、もっとネイティブのAndroid開発ツールを使うべきです。たとえば:https://stackoverflow.com/questions/43232968/delphi-firemonkey-tcombobox-extreme-slow-opening?s=1|1.8014 –

+0

FMXライブラリーで編集できるものがあるかもしれません。スレッドやダブルバッファリングをしてください。 –

+1

@MaurícioLimaDelphiには完全なVCLコードが付いていますが、提供されるFMXコードは限られています。ですから、FMXのコアをレンダリングするためのコードが提供されていないため、あなた自身で多くを最適化することはできません。 – SilverWarior

答えて

1

多視点で使用するすべての標準コントロールを削除し、代わりにAlcinoe標準コントロールを使用することもできます。彼らはダブルバッファリングされているので、それらをプリロードすることができます。そして、通常のDelphiスタイルのコントロールよりももっと速く描画できます。一般的には、すべてのスタイルコントロール(例:Tlabel)を避け、古典的なコントロール(例:TText)を使用してください。

もう1つの発言:システム上で利用可能なフォントを選択するかどうかを確認してください。システム上にないフォントでコントロールの最初のレンダリングを行います。使用するフォントを決定するのに非常に時間がかかります

注:私は@ jerrydodgeが、私は彼が間違っていると言っていますが、デルファイでは、スタジオ/ xcode(少なくともベルリンの下では、彼らは実際にバグです)と一緒にビルドするアプリは高速です!あなたはちょうどそれを正しく構築する必要があります;)二重のバッファリングされたコントロールでalcinoeプロジェクトを見てみよう

+0

実際に私はFMX.FontGlyphs.Android.pasを変更したので、0.3秒のフリーズを引き起こしているかもしれない配備中のフォントを使用できますか? すでにAlcinoe TEditを使用していましたが、他のコントロールを実装しようとします。ありがとう。 –

+0

私はプロジェクトのコントロールをAlcinoeのコントロールに入れ替えましたが、イメージやビデオのようなものの中にはちょっと混乱しているようで、説明するチュートリアルはありません。 –

関連する問題