PopupWindow
来源:互联网 发布:phpstorm php配置 编辑:程序博客网 时间:2024/06/05 07:17
package com.yztc_popupwindow;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.Toast;
/**
* 演示PopupWindow
*/
public class PopupWindowActivity extends Activity implements OnClickListener{private View contentView;private PopupWindow mWindow;private ImageView ivBack, ivCollect, ivShare;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // 创建PopupWimdow initPopupWindow(); // 三个按钮点击事件 initView();}private void initView() { ivBack = (ImageView) contentView.findViewById(R.id.iv_back); ivCollect = (ImageView) contentView.findViewById(R.id.iv_collect); ivShare = (ImageView) contentView.findViewById(R.id.iv_share); ivBack.setOnClickListener(this); ivCollect.setOnClickListener(this); ivShare.setOnClickListener(this);}private void initPopupWindow() { // contentView:内容视图 contentView = getLayoutInflater() .inflate(R.layout.content_layout, null); mWindow = new PopupWindow(contentView, LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);// 内容,宽,高 // 设置触摸PopupWindow外面的区域时,是否可以使这个PopupWindow消失 mWindow.setOutsideTouchable(true); // 设置背景 // mWindow.setBackgroundDrawable(background); // 设置PopupWindow是否触摸时会有响应 // mWindow.setTouchable(true);}// 处理某个按键的方法@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) { switch (keyCode) { case KeyEvent.KEYCODE_MENU:// 监听menu键 // isShowing():判断PopupWindow是否正在展示 if (mWindow.isShowing()) { mWindow.dismiss();// 消失 } else { // 显示PopupWindow mWindow.showAtLocation(contentView, Gravity.BOTTOM, 0, 0); // 作为下拉视图显示 // mWindow.showAsDropDown(anchor, xoff, yoff); } break; case KeyEvent.KEYCODE_BACK:// 监听返回键 if (mWindow.isShowing()) { mWindow.dismiss(); } break; } return super.onKeyDown(keyCode, event);}@Overridepublic void onClick(View v) { switch (v.getId()) { case R.id.iv_back: finish(); if (mWindow.isShowing()) { mWindow.dismiss(); } break; case R.id.iv_collect: Toast.makeText(this, "收藏", Toast.LENGTH_SHORT).show(); break; case R.id.iv_share: Toast.makeText(this, "分享", Toast.LENGTH_SHORT).show(); break; }}@Overrideprotected void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); if (mWindow != null) { mWindow.dismiss(); mWindow = null; } }}
PopupWindow布局
<?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:orientation="horizontal" ><ImageView android:id="@+id/iv_back" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /><ImageView android:id="@+id/iv_collect" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /><ImageView android:id="@+id/iv_share" android:layout_width="0dp" android:layout_height="50dp" android:layout_weight="1" android:scaleType="fitXY" android:src="@drawable/ic_launcher" /></LinearLayout>
阅读全文
0 0
- popupwindow
- popupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- popupwindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- PopupWindow
- popupwindow
- popupwindow
- PopupWindow
- 解决AndroidStudio模拟器卡慢的问题
- notify()与notifyAll()的区别
- ctype.h / cctype
- 面试的一点点感想。
- FTPrep, 75 Sort Colors
- PopupWindow
- process_config解析fstab文件
- redis数据类型
- html --table表格
- [LeetCode]645. Set Mismatch
- numpy 矩阵运算
- 量子概率及量子认知学习入口
- AlertDialog
- 利用C3P0数据源来作连接池,简单的写一个数据库操作来描述分层思想