だから私は画面の約 80% を占める webview でフリップ カード アニメーションをやっています。 フリップ カード アニメーションのチュートリアル
Spannables を使用して TextView から WebView に切り替えて以来、アニメーションが少しずれているように見えたので、速度を落としました。3D フリップが発生すると、WebView の下部と上部から線が消え始めることに気付きました。アニメーションが進むにつれて。気になったので、直したいと思いました。
私の解決策: アニメーションの開始時に WebView から描画キャッシュ ビットマップを取得し、WebView を非表示にし、WebView 描画キャッシュ ビットマップを ImageView に設定し、ImageView を表示する ImageView を追加しました。
webview の作成により:
mWebView.setAnimationCacheEnabled(false);
mWebView.setDrawingCacheEnabled(true);
mWebView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_AUTO);
アニメーションの開始時と停止時:
public void setIsAnimating(boolean isAnimating) {
mIsAnimating = isAnimating;
if (mIsAnimating) {
Bitmap webCache = mWebView.getDrawingCache();
mCachedView.setImageBitmap(webCache);
mCachedView.setVisibility(View.VISIBLE);
mWebView.setVisibility(View.INVISIBLE);
mProgressView.setVisibility(View.GONE);
} else {
mWebView.setVisibility(View.VISIBLE);
mCachedView.setVisibility(View.GONE);
mProgressView.setVisibility(View.GONE);
}
}
このソリューションはうまく機能しているように見えますが、アニメーションが実際に開始されるまでにわずか 100 ミリ秒程度の遅れが見られます。これが描画キャッシュの仕組みですか? どのように使用されることを意味しますか?そうでない場合は、どうすればよいですか?描画キャッシュで動作する多くの例/説明を見つけることができませんでした。
ありがとう!