首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

这种效果是如何实现

2013-08-01 
这种效果是怎么实现1、点击右上角的拍照,弹出一个抽屉,当我点击屏幕的其它地方(不点抽屉,触摸抽屉时,抽屉不

这种效果是怎么实现
1、点击右上角的拍照,弹出一个抽屉,当我点击屏幕的其它地方(不点抽屉,触摸抽屉时,抽屉不消失)时,抽屉消失,
2、那一种情况是像图中的那样,点击右上角的拍照,弹出一个抽屉,抽屉以外的触摸事件无效!
这种效果是如何实现 android SlidingDrawer?
[解决办法]
你可以把抽屉和不透明的区域看成一个整体的控件

你点击响应出来之后 只是用一个动画 让这个窗口出来。
[解决办法]
这是一个dialog吧,通过setOutsideTouchable(true/false)来控制点击外面dialog是否消失
[解决办法]

引用:
Quote: 引用:

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

就像某信的那种抽屉式功能

http://www.apkbus.com/android-81658-1-1.html
这种功能?网上代码蛮多的
[解决办法]
能做出来的多,只要你有想法, 直接给地下放3个button 放一个layout 里边都行。 PopupWindow,还有楼上说的FragmeLayout 都行。
[解决办法]
楼主你po个邮箱,我发个demo给你
[解决办法]
用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


        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);
}

热点排行