`

PopupWindow的简单应用

 
阅读更多
这是一个点击删除按钮,弹出PopupWindow对话框操作的案例,昨天第一次用PopupWindow,拿出来分享下:
xml页面如下:
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="horizontal" >

    <ImageView
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@android:drawable/btn_dialog"
       
        />

</LinearLayout>
window.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#ffeeaa"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:alpha="0.6"
        android:background="#cccccc"
        android:text="删除" />

    <Button
        android:id="@+id/button2"
        style="?android:attr/buttonStyleSmall"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="取消"
        android:background="#ffee99"
        android:alpha="0.3"/>

</LinearLayout>
唯一的Activity:MainActivity,不用手动注册什么
package com.example.popupwindow;

import android.support.v7.app.ActionBarActivity;
import android.support.v7.app.ActionBar;
import android.support.v4.app.Fragment;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.PopupWindow;
import android.widget.Toast;
import android.os.Build;
import android.provider.Settings.System;

public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
        ImageView btn = (ImageView) findViewById(R.id.btn);
       
        btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// 显示窗口
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
        // 引入窗口配置文件
        View view = inflater.inflate(R.layout.window, null);
        // 创建PopupWindow对象
        final PopupWindow pop = new PopupWindow(view, LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, false);
        DisplayMetrics metric = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metric);
        int width = metric.widthPixels;
        pop.setWidth(width);
        pop.setHeight(140);
        pop.setAnimationStyle(android.R.style.Animation_InputMethod);
        // 需要设置一下此参数,点击外边可消失
        pop.setBackgroundDrawable(new BitmapDrawable());
        //设置点击窗口外边窗口消失
        pop.setOutsideTouchable(true);
        // 设置此参数获得焦点,否则无法点击
        pop.setFocusable(true);
if(pop.isShowing()) {
// 隐藏窗口,如果设置了点击窗口外小时即不需要此方式隐藏
pop.dismiss();
} else {

pop.showAsDropDown(v);
}
//得到子页面,从而得到需要添加监听的控件
View w = pop.getContentView();
Button btnConfig = (Button) w.findViewById(R.id.button1);
btnConfig.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "删除", Toast.LENGTH_SHORT).show();
}
});
Button btn = (Button) w.findViewById(R.id.button2);
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
pop.dismiss();
}
});
}
});
}
}
分享到:
评论

相关推荐

    安卓 PopupWindow 简单使用学习

    PopupWindow是Android系统提供的一种轻量级的弹出窗口组件,它可以在屏幕的任意位置显示一个浮动视图,常用于创建下拉菜单、提示信息或者简单的对话框等。本篇文章将深入探讨PopupWindow的基本概念、使用方法以及在...

    popupwindow的简单小例子

    在这个“popupwindow的简单小例子”中,我们将探讨如何在Android应用中创建和使用PopupWindow。 首先,PopupWindow的创建需要三个基本元素:一个视图(View),一个宽度和一个高度。视图通常是布局文件,包含了你想...

    popUpWindow 简单Demo

    在本"popUpWindow简单Demo"中,我们将深入理解如何实现一个从底部弹出并具有动画效果的`PopupWindow`,以及如何响应点击事件来关闭它。 首先,我们来看看`PopupWindow`的基本概念。`PopupWindow`是Android SDK提供...

    PopupWindow

    以下是一个简单的示例代码,展示了如何使用XML布局文件定义并显示PopupWindow: ```java // 加载XML布局 View popupView = LayoutInflater.from(this).inflate(R.layout.popup_layout, null); // 创建PopupWindow ...

    android popupwindow 底部灰色背景

    总的来说,Android的PopupWindow是一个强大且灵活的工具,它允许开发者创建各种各样的浮动界面,而添加底部灰色背景只是其中的一个简单应用。通过熟练掌握PopupWindow的使用,开发者可以为用户打造出更具吸引力和...

    一款清新简易的通用的popupwindow

    这款"清新简易的通用popupwindow"显然是为了满足开发者快速构建符合应用风格的PopupWindow需求。 在Android中,PopupWindow类提供了创建和管理浮动窗口的功能。它不像Dialog那样需要一个主题,而是完全自定义的,...

    PopupWindow 的简单使用实例

    在这个简单的使用实例中,我们将深入理解 PopupWindow 的核心概念,以及如何在实际应用中高效地实现它。 首先,PopupWindow 的基本构造函数需要一个视图作为内容视图,它的大小可以自定义。例如,你可以通过以下...

    PopupWindow例子

    PopupWindow在Android开发中是一个非常实用的组件,它允许开发者创建弹出式窗口,这些窗口可以悬浮在其他UI元素之上,通常用于显示上下文相关的菜单、提示信息或者简单的交互界面。在“PopupWindow例子”中,我们将...

    android的popupWindow使用

    本篇文章将详细介绍如何在Android应用中使用PopupWindow,并通过一个具体的案例来演示其基本用法。 首先,PopupWindow是Android SDK提供的一种轻量级的弹窗组件,相比Dialog,它的创建和显示更加灵活。PopupWindow...

    Android PopupWindow使用示例

    以下是一个简单的创建`PopupWindow`的例子: ```java // 创建一个布局,包含你想要显示的内容 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View popupView = ...

    popupWindow 大小 位置

    以下是一个简单的创建示例: ```java View popupView = LayoutInflater.from(context).inflate(R.layout.popup_window_layout, null); PopupWindow popupWindow = new PopupWindow(popupView, width, height, true)...

    Android popupwindow 示例程序一

    以下是一个简单的创建PopupWindow的例子: ```java PopupWindow popupWindow = new PopupWindow(view, width, height, true); ``` 这里的`view`是我们的布局,`width`和`height`分别是PopupWindow的宽度和高度,`...

    Android PopupWindow的Demo项目

    在Android开发中,`PopupWindow`是一个非常重要的组件,它允许开发者在主界面之上显示一个临时的、可定制的窗口,通常用于实现各种形式的下拉菜单、提示信息或者简单的对话框效果。在这个"Android PopupWindow的Demo...

    eclipse — PopUpWindow实现

    这个简单的`demo`展示了如何利用`PopupWindow`构建一个底部菜单栏,同时结合动画效果,增强用户体验。 1. **创建PopupWindow** 首先,我们需要创建一个布局文件,定义底部菜单栏的UI元素,例如包含几个按钮的水平...

    popupwindow以及渐变背景

    为了演示这些概念,我们可以创建一个简单的项目,包含一个Button作为触发PopupWindow显示的锚点,点击Button时显示带有渐变背景的PopupWindow。在poptest项目中,你可能已经找到了相关的代码示例,包括布局文件和...

    Android PopupWindow实例

    在Android应用设计中,PopupWindow常被用来创建下拉菜单、提示信息或者简单的对话框。本文将深入探讨PopupWindow的基本使用、特性以及一些实际应用场景。 1. **PopupWindow的基本概念** PopupWindow是一个可定制的...

    超级简单的自定义PopupWindow 子控件的四个方向 底部

    PopupWindow在Android开发中是一种非常常用的组件,它用于在屏幕上的任意位置显示一个浮动窗口,通常用作下拉菜单、提示信息或者简单的交互界面。在本教程中,我们将深入探讨如何自定义PopupWindow,使其子控件能够...

    Android PopupWindow与Activity之间的数据传递.zip

    PopupWindow通常用于创建浮动窗口,如下拉菜单、提示框等,而Activity则是应用程序的基本单元,承载着用户界面和业务逻辑。两者之间的数据传递是实现交互功能的关键。下面将详细阐述如何在Android中进行PopupWindow...

    popupwindow完整代码

    在Android应用设计中,PopupWindow可以为用户提供更加直观和便捷的交互体验。本篇文章将深入探讨PopupWindow的使用、特性以及常见应用场景。 一、PopupWindow的基本概念 PopupWindow类在`android.widget`包下,它...

    popupwindow的Demo

    PopupWindow是Android开发中常见的一种组件,用于在界面上弹出一个可自定义的窗口,通常用于显示快捷菜单、提示信息或进行简单的交互操作。在本Demo中,我们将深入探讨PopupWindow的基本用法,了解如何创建、显示...

Global site tag (gtag.js) - Google Analytics