先看看效果图
package com.example.ddd; import android.app.Activity; import android.graphics.drawable.BitmapDrawable; import android.view.Gravity; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.PopupWindow; public class PopupWindowZhong { private PopupWindow popWindow; private View layout; private Activity context; public PopupWindowZhong(Activity context,int resId) { this.context = context; layout = context.getLayoutInflater().inflate(R.layout.pop_cj_dialog, null); ImageView img = (ImageView) layout.findViewById(R.id.zhong_pic); LinearLayout lay = (LinearLayout) layout.findViewById(R.id.zhong_lay); img.setImageResource(resId); popWindow = new PopupWindow(layout, LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); popWindow.setOutsideTouchable(true); popWindow.setBackgroundDrawable(new BitmapDrawable()); lay.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { popWindow.dismiss(); } }); img.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { popWindow.dismiss(); } }); } public void hidden() { if (popWindow != null && popWindow.isShowing()) { popWindow.dismiss(); } } public void isShowing(View view) { if (popWindow != null) { popWindow.showAtLocation(view, Gravity.FILL, 0, 0); } } }
布局文件
android:id="@+id/zhong_lay" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#80000000" android:gravity="center" android:orientation="vertical" > android:id="@+id/zhong_pic" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/ic_launcher" />
引用
package com.example.ddd; import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button mButton = (Button) findViewById(R.id.btn); mButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { PopupWindowZhong mPopupWindowZhong = new PopupWindowZhong(MainActivity.this, R.drawable.ic_launcher); mPopupWindowZhong.isShowing(v); } }); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } } 很简单的几步