1、点击右上角的拍照,弹出一个抽屉,当我点击屏幕的其它地方(不点抽屉,触摸抽屉时,抽屉不消失)时,抽屉消失,
2、那一种情况是像图中的那样,点击右上角的拍照,弹出一个抽屉,抽屉以外的触摸事件无效!
androidSlidingDrawer 

解决方案 »

  1.   

    这是一个dialog吧,通过setOutsideTouchable(true/false)来控制点击外面dialog是否消失
      

  2.   

    弄一个Framelayout 在你不想有效果的layout上面覆盖
      

  3.   

    就像某信的那种抽屉式功能
    http://www.apkbus.com/android-81658-1-1.html
    这种功能?网上代码蛮多的
      

  4.   

    能做出来的多,只要你有想法, 直接给地下放3个button 放一个layout 里边都行。 PopupWindow,还有楼上说的FragmeLayout 都行。
      

  5.   

    楼主你po个邮箱,我发个demo给你
      

  6.   

    其实想弹出一个Textview,显示文字
      

  7.   


    [email protected]
    木有收到?
      

  8.   

    用Dialog和Fragement应该都是可以实现的。
    分析了一下你的需求,大致有以下几点:
    1. 界面以抽屉的形式弹出来
    2. 界面显示后,背景是DIM效果,如同Dialog显示时的背景。
    3. 点击空白处,界面缩回去。
    基于以上几点,个人认为用Dialog实现比较方便,因为我们不需要设置DIM效果了。
    我简单描述一下用Dialog的实现方式:
    1. 自定义一个Dialog
    2. 自己定义Dialog的动画,包括enter和exit两种效果,另外再加上一个style文件。
    3. 点击Button,显示该Dialog。自定义Dialog如下:public class CusDialog extends Dialog
    {
        private Window window = null;      public CusDialog(Context context)
        {
            super(context);
        }
        
        public void showDialog( int layoutResID, int x , int y, int rId)
        {  
            setContentView(layoutResID);        
            windowDeploy(x, y, rId);  
            setCanceledOnTouchOutside(true);  // 点击空白处,Dialog消失
            show();  
        }
        
        public void windowDeploy(int x, int y, int rId){  
            window = getWindow();  
            window.setWindowAnimations(rId);  
            //window.setBackgroundDrawableResource(R.color.vifrification);  
            WindowManager.LayoutParams wl = window.getAttributes();  
            wl.x = x;
            wl.y = y;   
            window.setAttributes(wl);  
        }  
    }
    以下是Style文件:mystyle2.xml<?xml version="1.0" encoding="utf-8"?>
    <resources>
        <style name="mystyle2" parent="android:Animation">
            <item name="@android:windowEnterAnimation">@anim/dialog_scale_show_2</item>
            <item name="@android:windowExitAnimation">@anim/dialog_scale_dismiss_2</item>
        </style>
    </resources>
    以下是dialog_scale_show_2.xml文件:即Dialog将要显示的动画<?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >
        <scale
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="300"
            android:fillAfter="false"
            android:fromXScale="0.15"
            android:fromYScale="0.15"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="1.0"
            android:toYScale="1.0" />
         <translate
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="300"
            android:fromXDelta="0"
            android:fromYDelta="300"
            android:toXDelta="0"
            android:toYDelta="0" />
    </set>
    以下是dialog_scale_dismiss_2.xml文件:即Dialog将要消失的动画<?xml version="1.0" encoding="utf-8"?>
    <set xmlns:android="http://schemas.android.com/apk/res/android" >    <scale
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="300"
            android:fillAfter="false"
            android:fromXScale="1.0"
            android:fromYScale="1.0"
            android:pivotX="50%"
            android:pivotY="50%"
            android:toXScale="0.15"
            android:toYScale="0.15" />
        <translate
            android:interpolator="@android:anim/accelerate_interpolator"
            android:duration="300"
            android:fromXDelta="0"
            android:fromYDelta="0"
            android:toXDelta="0"
            android:toYDelta="300" />
    </set>
    如何调用:private void showDialog()
    {
        CusDialog cusDialog = new CusDialog(this);
        cusDialog.setTitle("MessageDialog");
        int styleId = com.gtx.R.style.mystyle2; // 生成后的Style ID
        cusDialog.showDialog(自己的Dialog布局, 0, 0, styleId);
    }
      

  9.   

    补充下,上面的动画不是你想要的动画,自己改改就行。
    3QQ!OK了,还要改改,我只想显示白色那部分就行了