Android popupwindow使用心得(一)

最近项目中好多地方用到popupwindow,感觉这个控件还是非常重要的。所以把使用心得总结下,废话不多说,直接上代码。

public class MainActivity extends Activity {

	/**
	 * 选择按钮
	 */
	private Button mSelectTypeBtn;

	/**
	 * 显示选择的内容
	 */
	private TextView mSelectedType;

	private PopupWindow mPopupWindow;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
        mSelectTypeBtn = (Button) findViewById(R.id.btn_select_type);
		mSelectedType = (TextView) findViewById(R.id.tv_type);
		mSelectTypeBtn.setOnClickListener(new View.OnClickListener() {

			@Override
			public void onClick(View v) {

				showSelectTypeWindow();
			}
		});

	}

	private void showSelectTypeWindow() {
		LinearLayout contentView = (LinearLayout) getLayoutInflater().inflate(
				R.layout.hd_type_view, null);
		ListView lv = (ListView) contentView
				.findViewById(R.id.hd_type_listview);
		final String[] types = getResources().getStringArray(
				R.array.hd_type_array);
		ArrayAdapter<String> adapter = new ArrayAdapter<String>(
				MainActivity.this, R.layout.hd_type_view_item, types);
		lv.setAdapter(adapter);
        lv.setOnTouchListener(new OnTouchListener() {
			@Override
			public boolean onTouch(View v, MotionEvent event) {
				return MotionEvent.ACTION_MOVE == event.getAction() ? true
						: false;
			}
		});

		lv.setOnItemClickListener(new OnItemClickListener() {
			@Override
			public void onItemClick(AdapterView<?> parent, View view,
					int position, long id) {

				mSelectedType.setText(types[position]);

				mPopupWindow.dismiss();
			}
		});

		mPopupWindow = new PopupWindow(contentView, LayoutParams.MATCH_PARENT,
				LayoutParams.MATCH_PARENT, true);

		mPopupWindow.setAnimationStyle(R.style.popwin_anim_style);

		mPopupWindow.setBackgroundDrawable(new ColorDrawable(-00000));

		mPopupWindow.showAtLocation(findViewById(R.id.parent_lay),
				Gravity.CENTER | Gravity.CENTER, 0, 0);
	}

}

这里的 popupwindow里我没有自定义,直接使用Android自带的。下一篇文章里将会写一个自定义的popupwindow的

  

时间: 2024-12-26 05:28:36

Android popupwindow使用心得(一)的相关文章

Android popupwindow以及windowManager总结——实现悬浮效果

Android有三类窗口 应用程序窗口 (Application Window): 包括所有应用程序自己创建的窗口,以及在应用起来之前系统负责显示的窗口. 子窗口(Sub Window):比如应用自定义的对话框,或者输入法窗口,子窗口必须依附于某个应用窗口(设置相同的token). 系 统窗口(System Window): 系统设计的,不依附于任何应用的窗口,比如说,状态栏(Status Bar), 导航栏(Navigation Bar), 壁纸(Wallpaper), 来电显示窗口(Phon

【Android】android PopupWindow实现从底部弹出或滑出选择菜单或窗口

转载自:android PopupWindow实现从底部弹出或滑出选择菜单或窗口 Android PopupWindow的使用和分析 Popupwindow的使用 PopupWindow用法

Android 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:bac

Android PopupWindow 仿微信弹出效果

项目中,我需要PopupWindow的时候特别多,这个东西也特别的好使,所以我今天给大家写一款PopupWindow 仿微信弹出效果,这样大家直接拿到项目里就可以用了!首先让我们先看效果: 那么我首先先看下布局代码非常简单:如下 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/pop_layout" android:layout_

Android Studio使用心得 - 常见问题集锦

整理了一些这段时间遇到的常见问题,希望对各位猿们有帮助...如果觉得有用就点个赞哦 问题一: Error:(26, 9) Attribute [email protected] value=(@drawable/logo) from AndroidManifest.xml:26:9 Error:(28, 9) Attribute [email protected] value=(@style/ThemeActionBar) from AndroidManifest.xml:28:9 is als

Android Popupwindow 拖动

版本:1.0 日期:2014.4.29 版权:© 2014 kince 转载注明出处 关于View的拖动大家应该比较了解了,比如对一个控件IamgeView拖动,或者一个视图View拖动,实现方式也很容易,继承OnTouchListener接口,然后重写onTouch方法,在触屏事件进行处理即可.但是Popupwindow如何实现拖动呢,我们都知道它和普通的View不一样,因为它不是继承于View类的,但是它的实现却是和View密切相关的,因为我们都知道Android视图的显示都是由View来处

Android Studio使用心得 - 简介与环境配置

关于Android Studio 在2013 Google IO大会上发布的全新IDE Android Studio相信各位猿们并不陌生,截止2014的Google IO大会,虽然依然木有发布正式版,但是根据我这几周的使用情况来说,BUG已经很少了,完全不影响正常使用.而且Android Studio是基于IntelliJ的,无论从运行速度上还是编程的快捷性上,都比Eclipse的体验要好,开发效率妥妥的提高了. Android Studio vs Eclipse ADT 目前Android S

关于Android PopupWindow中实用Spinner控件点击APP Crash情况整理!

场景异常信息如下: android.view.WindowManager$BadTokenException: Unable to add window -- token [email protected] is not valid; is your activity running? at android.view.ViewRootImpl.setView(ViewRootImpl.java:646) at android.view.WindowManagerGlobal.addView(Wi

Android 深度探索(卷1)HAL 与驱动开发 第二章 搭建 Android 开发环境 心得体会

Android 深度探索(卷1)HAL 与驱动开发 第二章 搭建 Android 开发环境 心得体会 本章主要介绍如何搭建Android底层开发的环境,主要包括Android应用程序开发环境,和交叉编译环境的搭建. 其中开发.测试和调试Linux驱动.HAL程序库需要的工具包括如下一些: 1. JDK6或以上版本 2. Eclipse3.4或以上版本 3. ADT(用于开发Android应用程序) 4. CDT(用于开发Android NDK程序) 5. Android SDK 6. Andro