Android --半透明效果悬浮框及activity(可做遮罩层,向导页)

  • 下面是style的一些属性及其解释

  • 自定义对话框效果如下


    Android --半透明效果悬浮框及activity(可做遮罩层,向导页)_第1张图片
    image.png

步骤

  • styles.xml

  • filled_box.xml


    
    
    
    

  • dialog_animation.xml

  • 在anim目录下创建fading_in.xml,进入时候的淡入效果


    

  • fading_out.xml淡出效果


    

  • showVerify方法,效果如上面图所示
private void verifyDialog(String msg)
        {
            final Dialog dialog = new Dialog(MainActivity.this, R.style.popupDialog);
            dialog.setContentView(R.layout.verify_dialog);
            dialog.setCanceledOnTouchOutside(false);
            dialog.setCancelable(false);
            TextView message = (TextView)dialog.getWindow().findViewById(R.id.messageTxt);
            Button okBtn = (Button)dialog.getWindow().findViewById(R.id.dismissBtn);
            message.setText(msg);
            okBtn.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                    if(dialog!=null && dialog.isShowing())
                    {
                        dialog.dismiss();
                    }
                }
            });
            if(dialog!=null && !dialog.isShowing())
            {
                dialog.show();
            }
        }

如果是想把整个activity做成类似于微博的new feature透明背景样式,如图

Android --半透明效果悬浮框及activity(可做遮罩层,向导页)_第2张图片
image.png
  • 上面的图是透明背景,透明颜色可以自己定义
  • styles.xml
 
  • 如果想设置的不是纯透明,改成灰色透明度的,可以设置windowBackground背景,下面是filled_activity_bg.xml,这样就是灰色的透明背景,类似于第一张图片


    
    

如果不做任何灰度处理,效果如上图,可以设置背景色为透明

 
  • 显示activity,代码如下。可以通过类似的原理制作遮罩层,其他的半透明能效果,例如popup菜单半透明效果等
Dialog dialog = new Dialog(MainActivity.this, R.style.activity_translucent);
                dialog.setContentView(R.layout.transparent_layout);
                dialog.show();

@希望对大家有所帮助!

你可能感兴趣的:(Android --半透明效果悬浮框及activity(可做遮罩层,向导页))