我正在做一个翻转卡片动画,它占用了80%的屏幕。翻转卡动画教程
自从我使用Spannables从TextView切换到WebView以来,动画看起来有点偏离,所以我放慢了速度,我注意到当3d翻转发生时,随着动画的进行,线条将开始从WebView的底部和顶部消失。它困扰着我,所以我想解决它。
我的解决方案:我添加了一个ImageView,当动画开始时,我从WebView中拉出绘图缓存位图,使WebView不可见,将WebView绘图缓存位图设置为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毫秒左右的延迟,现在在动画实际采取。这是如何绘制缓存工作?它的用途是什么?如果不是这样,那又怎样呢?我没能找到很多例子/解释与绘图缓存工作。
谢谢!
Try with WebView capturePicture() method:
Picture picture = view.capturePicture();
Bitmap b = Bitmap.createBitmap( picture.getWidth(),picture.getHeight(), Bitmap.Config.ARGB_8888);