zoukankan      html  css  js  c++  java
  • android自定义透明dialog菜单

    制作菜单时,我用了dialog加载一个view的方式,但是总是会出现一些黑色阴影,消除方法其实很简单;

    首先在style.xml文件里面定义一下dialgo样式,如果没有就新建一下

    style.xml

    <style name="Dialog" parent="android:style/Theme.Dialog"> 
         <item name="android:windowNoTitle">true</item> 
         <item name="android:windowFrame">@null</item> <!--边框-->
         <item name="android:windowIsFloating">true</item> <!--是否浮现在activity之上-->
         <item name="android:windowIsTranslucent">true</item><!--半透明-->  
        <item name="android:background">@android:color/transparent</item><!--背景透明-->
        <item name="android:windowBackground">@android:color/transparent</item><!--背景透明-->
         <item name="android:backgroundDimEnabled">true</item> <!--蒙版- 模糊 -->
     </style> 


    java里创建 dialog的时候直接加载就好了

    @Override
    	public boolean onKeyDown(int keyCode, KeyEvent event) {
    		if (keyCode == KeyEvent.KEYCODE_MENU && event.getRepeatCount() == 0) {
    
    		Dialog	dialog_about = new Dialog(LinkMap.this, R.style.Dialog);// 去白框dialog里面具体设置样式
    			dialog_about.setContentView(MenuView());
    
    			// 定义dialog大小跟位置(默认Gravity是局中)
    			Window dialogWindow = dialog_about.getWindow();
    			dialogWindow.setGravity(Gravity.BOTTOM | Gravity.BOTTOM);
    
    			dialog_about.setCanceledOnTouchOutside(true);// 设置点击Dialog外部任意区域关闭Dialog
    			dialog_about.show();
    
    			Log.i("menuview", "Menuclick");
    
    		}
    
    		if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
    			dialog();
    			return false;
    		}
    		return false;
    	}
    

     menuview

     

    	// 菜单view
    	public View MenuView() {
    		View view = super.getLayoutInflater().inflate(R.layout.aboutview, null);
    		// 登录/注册
    		ImageButton btnlogin = (ImageButton) view.findViewById(R.id.btnlogin);
    		btnlogin.setOnClickListener(new OnClickListener() {
    
    			@Override
    			public void onClick(View arg0) {
    				// TODO Auto-generated method stub
    				Intent intent = new Intent(LinkMap.this, Login.class);
    				startActivity(intent);
    			}
    		});
    

      

    ok了。。

    Crazy Cherry:everything is possible!
  • 相关阅读:
    Java中判断两个列表是否相等
    chrome:插件、跨域、调试....
    mac 开发环境采坑
    webpack升级踩坑
    js-使用装饰器去抖
    React setState 笔试题,下面的代码输出什么?
    react 解决:容器组件更新,导致内容组件重绘
    centos使用ngnix代理https
    javascript 理解继承
    js 数据监听--对象的变化
  • 原文地址:https://www.cnblogs.com/userbibi/p/2524099.html
Copyright © 2011-2022 走看看