java - 抽屉导航打开时变暗/变暗/模糊 Activity

标签 java android navigation-drawer

我正在使用 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/

相关文章:

java - hibernate 、多对一和删除

java - 我面临 Volley 超时错误和 mainThread 错误

java - 如何在 Intent 中插入 fragment (Android)

android - findViewById(R.id.tabhost) 始终返回 null

java - 抽屉导航标题 textview nullpointerexception

java - 在单独的类 Java 中调用时 ArrayList 为空

java - 如何初始化 keystore

android - 如何检查抽屉导航是否打开?

java - 如何在抽屉导航中提供 SettingsActivity?

java - 如何打印不同类中方法的结果?