首先,我正在创建一个应用程序,需要像iOS中那样透明活动+模糊。
我决定使用整个窗口的getDrawingcache
View decorView = activity.getWindow().getDecorView();
decorView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_LOW);
decorView.setDrawingCacheEnabled(true);
decorView.buildDrawingCache();
image = Bitmap.createBitmap(decorView.getDrawingCache());
decorView.destroyDrawingCache();
decorView.setDrawingCacheEnabled(false);
然后执行一些模糊方法(stack blur)并设置此活动的背景
activity.getWindow().setBackgroundDrawable(bd);
除非我的原始活动包含RecyclerView,否则此方法非常有效。我得到的结果总是从我第一次启动新活动时返回相同的位图
例如。首次启动活动,正确设置背景图像。但在那之后(第2个,第3个等等......)背景图像与第一个相同。
我需要帮助,任何建议都会非常感谢,谢谢!!
如果标题不好,您可以自由编辑。
UPDATE ..
经过几天调查这个问题,我发现真正的原因是SwipeRefreshLayout。我的屏幕截图在第一次调用onRefreshListener后不会更新。答案 0 :(得分:0)
我遇到了同样的问题
添加:
mRecyclerView.postDelayed(new Runnable()
{
@Override
public void run()
{
mRecyclerView.layout(0,0,mRecyclerView.getWidth(),mRecyclerView.getHeight());
if (mRecyclerView.isDrawingCacheEnabled())
{
mRecyclerView.destroyDrawingCache();
}
}
},50);
在mSwipeLayout.setRefreshing(false);
为我解决问题之后