我正在使用 LDrawer在我的项目中。当抽屉导航打开时,我需要使托管抽屉导航的 Activity 变暗/变暗/模糊。
我在 Stackoverflow 上看过类似的问题,但没有找到令人满意的答案。
当我打开 NavigationDrawer
时,是否有任何简单的技巧可以使 Activity 的布局变暗/变暗/模糊?
我将 Activity 的 RelativeLayout
定义为
RelativeLayout myActivity = (RelativeLayout) findViewById(R.id.myActivity)
我在下面有 NavigationDrawer
的切换代码
public boolean onOptionsItemSelected(MenuItem item) {
if (item.getItemId() == android.R.id.home) {
if (mDrawerLayout.isDrawerOpen(mDrawerList)) {
mDrawerLayout.closeDrawer(mDrawerList);
} else {
//I want to manipulate myActivity's Layout here
mDrawerLayout.openDrawer(mDrawerList);
}
}
return super.onOptionsItemSelected(item);
}
最佳答案
当我打开 NavigationDrawer 时,是否有任何简单的技巧可以使 Activity 的布局变暗/暗淡/模糊?
是的,您可以在打开抽屉时将 Activity 的背景图片简单地更改为模糊。
另一种方法是简单地通过 setalpha() 更改 alpha 或您的 Activity ,并传递您想要多少更改的值。
如果你对你的 Activity 有列表控制并且你想使它变得模糊,那么下面的代码将起作用。
Display display = getActivity().getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int screenWidth = size.x;
int screenHeight = size.y;
Bitmap blurBitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.invitation_blur_bg);
Rect rect = new Rect(0, 0, blurBitmap.getWidth(), blurBitmap.getHeight());
在您要应用此功能的 Activity 或 fragment 上实现 OnScrollListener。
@Override
public void onScroll(AbsListView view, int firstVisibleItem,
int visibleItemCount, int totalItemCount) {
for (int i = 0; i < listview.getChildCount(); i++) {
View c = listview.getChildAt(i);
Rect r = new Rect();
c.getHitRect(r);
RelativeLayout llItemBg = ((RelativeLayout ) c.findViewById(R.id.root_layout of list item);
Drawable d = new BitmapDrawable(getResources(), cropImage(r,c));
itemBackground.setBackgroundDrawable(d);
}
}
private Bitmap cropImage(Rect r, View c2) {
Bitmap bmOverlay = Bitmap.createBitmap(screenWidth - 60,
c2.getHeight(), Bitmap.Config.ARGB_8888);
Rect rect1=new Rect(0, 0, bmOverlay.getWidth(), bmOverlay.getHeight());
Paint p = new Paint();
Canvas c = new Canvas(bmOverlay);
rect.right = r.right;
rect.top = rect.top;
rect.bottom = r.bottom / 2;
c.drawBitmap(blurBitmap, r, rect1, p);
return bmOverlay;
}
关于java - 抽屉导航打开时变暗/变暗/模糊 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30339888/