• 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!
  • 相关阅读:
    强大的shell(一键redis,mysql,php,openresty,jdk)
    win7安装mysql-8.0.13-winx64
    linux设置代理
    我仅使用到的dd if
    shell脚本一键安装jdk
    《Objective-C》书籍阅读笔记
    关于Linux Vim练级攻略
    android开发过程中应该养成的良好习惯
    点击Button时,显示不同的效果、背景
    android studio 新建项目之后异常解决
  • 原文地址:https://www.cnblogs.com/userbibi/p/2524099.html
Copyright © 2020-2023  润新知