我使用ViewPager作爲我在應用程序中的主要導航。我也使用ActionBar。我想要實現的是,當用戶單擊ActionBar中的搜索按鈕時,我想要模糊背景。所以我的方法是截取屏幕截圖,模糊它,設置爲ImageView並在整個視圖中顯示爲疊加層。它的工作原理。但問題是,實際上當我第一次打開搜索它顯示正確的截圖。然後,我打開覆蓋圖,在ViewPager
中更改頁面,再次單擊搜索,然後...我可以看到以前的屏幕截圖 - 沒有新的頁面。這裏是我的代碼片段:當佈局更改時,屏幕截圖不會更改
顯示和隱藏疊加搜索點擊(我傳遞
R.id.container
鑑於這是我的內容視圖的父ID,menuOverlay是我ImageView
從佈局引用)這是我的方法,採取截圖,使其模糊
//廣告。 1 item.setOnActionExpandListener(新MenuItem.OnActionExpandListener(){ @覆蓋 公共布爾onMenuItemActionExpand(菜單項菜單項){ 如果(menuItem.getItemId()== R.id.action_search){
menuOverlay.setImageBitmap(Utils.takeSnapshot(findViewById(R.id.container))); menuOverlay.setVisibility(View.VISIBLE); } return true; } @Override public boolean onMenuItemActionCollapse(MenuItem menuItem) { if(menuItem.getItemId() == R.id.action_search) { menuOverlay.setVisibility(View.GONE); } return true; } }); // Ad. 2 public static Bitmap takeSnapshot(View v) { v.setDrawingCacheEnabled(true); v.buildDrawingCache(); Bitmap bm = v.getDrawingCache(); Bitmap scaled = Bitmap.createScaledBitmap(bm, bm.getWidth()/5, bm.getHeight()/5, false); return Utils.fastblur(scaled, 5); }
我。?... M使用發現這裏的某個地方在計算器上快速模糊算法是相當快的 哪裏是爲什麼會發生