1、点击右上角的拍照,弹出一个抽屉,当我点击屏幕的其它地方(不点抽屉,触摸抽屉时,抽屉不消失)时,抽屉消失,
2、那一种情况是像图中的那样,点击右上角的拍照,弹出一个抽屉,抽屉以外的触摸事件无效!
androidSlidingDrawer
2、那一种情况是像图中的那样,点击右上角的拍照,弹出一个抽屉,抽屉以外的触摸事件无效!
androidSlidingDrawer
解决方案 »
- 【求助】反汇编成功后,回编译出错
- android:launchMode="singleTask"和startActivityForResult的疑惑
- 我的安卓avd模拟器有问题?
- 如是实现 将一个自定义view整体放大缩小
- ImageButton用canvus旋转后点不中了
- 请大虾们详解一下Android中的坐标系统:getDrawingRect,getGlobalVisibleRect神马的都有啥区别??
- VideoView播放下载的视频,报不能播放不提示!
- android SurfaceView 全屏播放问题
- 为何有时直接从eclipse里用run启动程序会出错,但在虚拟机管理器里启动又正常?
- Android Studio 调试出现“很抱歉,XXX已停止运行”,可代码没报错
- Android 和 PC的通信 ?
- 代码出现的问题,部署到模拟器的时候,提示有空指针,无法通过。
http://www.apkbus.com/android-81658-1-1.html
这种功能?网上代码蛮多的
[email protected]
木有收到?
分析了一下你的需求,大致有以下几点:
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);
}
3QQ!OK了,还要改改,我只想显示白色那部分就行了