android自定义透明dialog菜单
2012-05-29 15:59 omgee 阅读(1299) 评论(0) 收藏 举报制作菜单时,我用了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!
浙公网安备 33010602011771号