`
喧嚣求静
  • 浏览: 551548 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

遮罩层效果

 
阅读更多
/**
	 * 遮罩层效果
	 * 
	 * @param process
	 *            主要实现layoutId布局中的查找控件并绑数据和事件并关联到dialog
	 * @param maskStyle
	 *            风格 <0时用默认
	 * @param layoutId
	 *            布局 <0时用默认
	 * @param msgTip
	 *            展示的提示信息
	 * @param listener
	 *            窗口消失时监听接口,为Null空时不处理
	 * */

	public static void maskLayerDialog(Context context, int maskStyle,
			int layoutId, String msgTip, MaskLayerDialog process,
			final OnCancelListener listener) {
		if (maskStyle < 0)
			maskStyle = R.style.dialog_translucent;
		if (layoutId < 0)
			layoutId = R.layout.mask_layout;

		final Dialog dialog = new Dialog(context, maskStyle);
		dialog.setContentView(layoutId);

		if (layoutId == R.layout.mask_layout) {
			// View v= LayoutInflater.from(context).inflate(layoutId, null);
			// TextView message = (TextView)v.findViewById(R.id.maskMsg);
			TextView msg = (TextView) dialog.getWindow().findViewById(
					R.id.maskMsg);
			msg.setText(msgTip);
		}

		dialog.setCanceledOnTouchOutside(true);
		dialog.setCancelable(true);
		if (listener != null)
			dialog.setOnCancelListener(listener);

		// 设置显示位置
		Window window = dialog.getWindow();
		// 设置显示动画

		WindowManager.LayoutParams wl = window.getAttributes();
		wl.x = 0;
		wl.y = 200;// ((Activity)context).getWindowManager().getDefaultDisplay().getHeight()+100;

		wl.width = 280;
		wl.height = 60;

		dialog.onWindowAttributesChanged(wl);
		if (process != null) {
			process.inintLayout(dialog);
		}
		if (dialog != null && !dialog.isShowing()) {
			dialog.show();
		}
	}

	public interface MaskLayerDialog {

		public void inintLayout(Dialog dialog);

	}

	public static int dip2px(Context context, float dipValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (dipValue * scale + 0.5f);
	}

	public static int px2dip(Context context, float pxValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (pxValue / scale + 0.5f);
	}

 

<!-- 遮罩层效果 -->
    <style name="dialog_translucent" parent="@android:style/Theme.Dialog">
        <item name="android:windowFrame">@null</item><!-- 边框 -->
        <item name="android:windowIsFloating">true</item><!-- 是否悬浮在activity上 -->
        <item name="android:windowIsTranslucent">false</item><!-- 半透明 -->
        <item name="android:windowNoTitle">true</item><!-- 无标题 -->
        <item name="android:windowBackground">@drawable/bgconfig</item><!-- 背景透明 -->
        <item name="android:backgroundDimEnabled">true</item><!-- 模糊 -->
        <item name="android:backgroundDimAmount">0.6</item><!-- 灰度 -->
        <item name="android:windowContentOverlay">@null</item><!-- 对话框是否有遮盖 -->
        <item name="android:windowAnimationStyle">@style/dialog_animation</item><!-- 弹出或者进入时的动画效果 -->
        <item name="android:colorBackgroundCacheHint">@null</item><!-- 背景缓存颜色 -->
    </style>

 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center_vertical"
    android:orientation="vertical" >
    
    <TextView  android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:gravity="center"
    android:id="@+id/maskMsg" android:text="操作成功"/>

</LinearLayout>

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics