- 浏览: 75986 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (101)
- Android (45)
- java中多线程的实现 (1)
- Runnable (2)
- Thread (1)
- TCP网络编程 (1)
- PHP (1)
- java (4)
- JDBC (1)
- oauth登录 (1)
- 中文乱码 (1)
- Ajax (1)
- web (2)
- Mysql (2)
- HTML5 (0)
- HTML5 (1)
- entity not found (1)
- JQuery (2)
- 使用jsp和Servlet实现一个验证码 (1)
- 验证码 (1)
- 异常 (1)
- webService (2)
- not insert异常 (1)
- JAVAmail (1)
- 选中分享 (1)
- 控件 (1)
- 方法 (1)
- listView (1)
- android控件 (1)
- jqueryMobile (1)
- servlet开发中文乱码解决方案 (1)
- servlet开发中文乱码解决方案 (1)
- web文本框初始提示 (1)
- web文本框初始提示 (0)
- xml (1)
- java中的加密技术 (1)
- 互联网 (1)
- mysql数据库 (1)
- java单例模式 (1)
- gson转json (1)
最新评论
这是一个点击删除按钮,弹出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();
}
});
}
});
}
}
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();
}
});
}
});
}
}
发表评论
-
Android自动化测试--Espresso框架使用
2016-11-01 10:02 760转载: Android自动化测试--Espresso框架 ... -
浅谈android中仅仅使用一个TextView实现高仿京东,淘宝各种倒计时
2016-11-01 09:54 1091转载:http://blog.csdn.net/u0130 ... -
利用apktool等工具发编译android apk
2016-10-25 09:15 750这个是我的csdn中的一篇关于android app反编译的文 ... -
Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunchin
2016-10-08 10:30 1037向studio中导入微信支付Demo的时候报错了,具体如图: ... -
android studio实用快捷键收集
2016-09-30 17:51 493本人用android studio刚开始,做一下笔记,只适用于 ... -
android中事件分发机制
2016-09-22 11:52 587转载自:http://www.cnblogs.com/linj ... -
一个对sharedpreferences 数据进行加密的开源库
2016-09-18 14:30 656http://www.cnblogs.com/zhaoyanj ... -
LinerLayout滑动后停在顶部
2016-09-18 12:08 685转载自:http://blog.csdn.net/ff2008 ... -
android studio入门知识
2016-09-06 18:11 714http://blog.csdn.net/jdsjlzx/ar ... -
android图片加载OOM解决方案
2016-08-30 15:17 490转载自:http://www.apkbus.com/blog- ... -
android oom连带问题,以及tag错位问题结局方案
2016-08-30 13:48 676http://www.apkbus.com/blog-8430 ... -
android新手指导
2016-08-30 11:59 403http://www.apkbus.com/forum.php ... -
android app自动化测试
2016-07-12 15:51 520android sdk的lib目录下有个monkeyrunne ... -
利用BadgeView实现数字提醒效果
2016-07-06 16:38 975BadgeView是一个第三方开源库, github地址:ht ... -
android端图片缓存实现,特别适用于listview来回滚动
2016-07-02 10:40 699转载自: http://www.open-open.com/l ... -
android文件存储文本
2016-05-17 17:26 504/** * 写入文本 */ private void ... -
android listView的BaseAdapter的抽取
2016-05-12 11:52 659/** * BaseAdapter的抽取 * @autho ... -
android全局异常捕获并发送异常到邮箱
2016-05-12 11:41 1123public class AppException exten ... -
android第三方框架xutils的使用
2016-05-12 11:35 849这里写一些网络请求的相关 //初始化相关参数和对象 publi ... -
android端版本更新
2016-05-12 11:26 737整个思路,先判断服务端当前版本是不是高于本地版本,高的话可以选 ...
相关推荐
PopupWindow是Android系统提供的一种轻量级的弹出窗口组件,它可以在屏幕的任意位置显示一个浮动视图,常用于创建下拉菜单、提示信息或者简单的对话框等。本篇文章将深入探讨PopupWindow的基本概念、使用方法以及在...
在这个“popupwindow的简单小例子”中,我们将探讨如何在Android应用中创建和使用PopupWindow。 首先,PopupWindow的创建需要三个基本元素:一个视图(View),一个宽度和一个高度。视图通常是布局文件,包含了你想...
在本"popUpWindow简单Demo"中,我们将深入理解如何实现一个从底部弹出并具有动画效果的`PopupWindow`,以及如何响应点击事件来关闭它。 首先,我们来看看`PopupWindow`的基本概念。`PopupWindow`是Android SDK提供...
以下是一个简单的示例代码,展示了如何使用XML布局文件定义并显示PopupWindow: ```java // 加载XML布局 View popupView = LayoutInflater.from(this).inflate(R.layout.popup_layout, null); // 创建PopupWindow ...
总的来说,Android的PopupWindow是一个强大且灵活的工具,它允许开发者创建各种各样的浮动界面,而添加底部灰色背景只是其中的一个简单应用。通过熟练掌握PopupWindow的使用,开发者可以为用户打造出更具吸引力和...
这款"清新简易的通用popupwindow"显然是为了满足开发者快速构建符合应用风格的PopupWindow需求。 在Android中,PopupWindow类提供了创建和管理浮动窗口的功能。它不像Dialog那样需要一个主题,而是完全自定义的,...
在这个简单的使用实例中,我们将深入理解 PopupWindow 的核心概念,以及如何在实际应用中高效地实现它。 首先,PopupWindow 的基本构造函数需要一个视图作为内容视图,它的大小可以自定义。例如,你可以通过以下...
PopupWindow在Android开发中是一个非常实用的组件,它允许开发者创建弹出式窗口,这些窗口可以悬浮在其他UI元素之上,通常用于显示上下文相关的菜单、提示信息或者简单的交互界面。在“PopupWindow例子”中,我们将...
本篇文章将详细介绍如何在Android应用中使用PopupWindow,并通过一个具体的案例来演示其基本用法。 首先,PopupWindow是Android SDK提供的一种轻量级的弹窗组件,相比Dialog,它的创建和显示更加灵活。PopupWindow...
以下是一个简单的创建`PopupWindow`的例子: ```java // 创建一个布局,包含你想要显示的内容 LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); View popupView = ...
以下是一个简单的创建示例: ```java View popupView = LayoutInflater.from(context).inflate(R.layout.popup_window_layout, null); PopupWindow popupWindow = new PopupWindow(popupView, width, height, true)...
以下是一个简单的创建PopupWindow的例子: ```java PopupWindow popupWindow = new PopupWindow(view, width, height, true); ``` 这里的`view`是我们的布局,`width`和`height`分别是PopupWindow的宽度和高度,`...
在Android开发中,`PopupWindow`是一个非常重要的组件,它允许开发者在主界面之上显示一个临时的、可定制的窗口,通常用于实现各种形式的下拉菜单、提示信息或者简单的对话框效果。在这个"Android PopupWindow的Demo...
这个简单的`demo`展示了如何利用`PopupWindow`构建一个底部菜单栏,同时结合动画效果,增强用户体验。 1. **创建PopupWindow** 首先,我们需要创建一个布局文件,定义底部菜单栏的UI元素,例如包含几个按钮的水平...
为了演示这些概念,我们可以创建一个简单的项目,包含一个Button作为触发PopupWindow显示的锚点,点击Button时显示带有渐变背景的PopupWindow。在poptest项目中,你可能已经找到了相关的代码示例,包括布局文件和...
在Android应用设计中,PopupWindow常被用来创建下拉菜单、提示信息或者简单的对话框。本文将深入探讨PopupWindow的基本使用、特性以及一些实际应用场景。 1. **PopupWindow的基本概念** PopupWindow是一个可定制的...
PopupWindow在Android开发中是一种非常常用的组件,它用于在屏幕上的任意位置显示一个浮动窗口,通常用作下拉菜单、提示信息或者简单的交互界面。在本教程中,我们将深入探讨如何自定义PopupWindow,使其子控件能够...
PopupWindow通常用于创建浮动窗口,如下拉菜单、提示框等,而Activity则是应用程序的基本单元,承载着用户界面和业务逻辑。两者之间的数据传递是实现交互功能的关键。下面将详细阐述如何在Android中进行PopupWindow...
在Android应用设计中,PopupWindow可以为用户提供更加直观和便捷的交互体验。本篇文章将深入探讨PopupWindow的使用、特性以及常见应用场景。 一、PopupWindow的基本概念 PopupWindow类在`android.widget`包下,它...
PopupWindow是Android开发中常见的一种组件,用于在界面上弹出一个可自定义的窗口,通常用于显示快捷菜单、提示信息或进行简单的交互操作。在本Demo中,我们将深入探讨PopupWindow的基本用法,了解如何创建、显示...