`
zhuqiang5138
  • 浏览: 31934 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

PopupWindow的应用 1

 
阅读更多
PopupWindow的使用,这里是分析QQ通讯录的源码看到的,这里分享下:
 
  以“拨号盘”界面的-最近联系人 右边的“筛选”按钮为例:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:orientation="vertical" android:id="@+id/tabcontent"
	android:layout_width="fill_parent" android:layout_height="fill_parent"
	xmlns:android="http://schemas.android.com/apk/res/android">
		<RelativeLayout android:id="@+id/tv_call_log" android:background="@drawable/bg_header" android:layout_width="fill_parent" android:layout_height="wrap_content">
			<TextView android:textSize="20.0sp" android:textColor="#ffffff" android:gravity="center" android:id="@+id/titleText"
				android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="最近联系人" android:layout_centerInParent="true" />
			<com.farmer.views.PopuMenuTextButton
				android:textColor="#ffffff" android:gravity="center" android:id="@+id/titleImg" android:background="@drawable/bg_top_btn" android:layout_width="46.0dip"
				android:layout_height="34.0dip" android:layout_marginRight="4.0dip" android:text="筛选" android:layout_alignParentRight="true" android:layout_centerVertical="true" />
		</RelativeLayout>
</LinearLayout>

上面的PopuMenuTextButton 就是需要复写的Butoon
public abstract interface nl
{
  public abstract void popAwindow(View paramView);
}

public class PopuMenuTextButton extends Button
{
  private nl pwindow;

  public PopuMenuTextButton(Context paramContext, AttributeSet paramAttributeSet)
  {
    super(paramContext, paramAttributeSet);
  }

  protected void onDetachedFromWindow()
  {
    if (this.pwindow != null)
      this.pwindow.popAwindow(this);
    super.onDetachedFromWindow();
  }

  public void setOnDetachedListener(nl paramnl)
  {
    this.pwindow = paramnl;
  }
}


下面就是Activty的关键代码:
private PopuMenuTextButton pbtn;
	private PopupWindow pwindow;
         //onCreate.......
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.layout_dialerpad);
		this.pbtn = (PopuMenuTextButton) findViewById(R.id.titleImg);
		pbtn.setOnClickListener(this);}
       //显示PopupWindow 窗口
       public void showPop(){
		int i1 = -1;
	    if (upOrdown() == i1){
                  //这边是需要再构造一个布局文件的
	    	View localView1 = LayoutInflater.from(this).inflate(
	    		R.layout.layout_popup_calllog_type, null);
	    	View localView2 = localView1.findViewById(R.id.popup_callLog_all);
	    	View localView3 = localView1.findViewById(R.id.popup_callLog_miss);
	    	View localView4 = localView1.findViewById(R.id.popup_callLog_incoming);
	    	View localView5 = localView1.findViewById(R.id.popup_callLog_outgoing);
	    	localView2.setOnClickListener(this);
	    	localView3.setOnClickListener(this);
	    	localView4.setOnClickListener(this);
	    	localView5.setOnClickListener(this);
	    	PopupWindow localPopupWindow1 = new PopupWindow(localView1, i1, i1);
	    	this.pwindow = localPopupWindow1;
	    	this.pwindow.showAsDropDown(this.pbtn);
	    }
	}

public int upOrdown() {
		int i1 = -1;
		if ((this.pwindow != null) && (this.pwindow.isShowing())) {
			this.pwindow.dismiss();
			i1 = 1;
		}
		return i1;
	}

@Override
	public void popAwindow(View paramView) {
		upOrdown();
	}


PopupWindow的布局文件layout_popup_calllog_type 如下 如下 如下.....
怎么也写不下了 我悲剧 只能写到下个文章中去了。
分享到:
评论

相关推荐

    popupwindow的应用

    这个"popupwindow的应用"主题涵盖了PopupWindow的各种应用场景和实现技巧。 首先,PopupWindow的基本用法包括创建PopupWindow实例、设置显示内容(如布局文件)、指定宽度和高度以及显示位置。例如,你可以通过以下...

    探索Popupwindow-对话框风格的窗口(一)

    在这个“探索PopupWindow-对话框风格的窗口(一)”主题中,我们将深入理解PopupWindow的基本用法,如何自定义其样式,以及在实际应用中的常见实践。 首先,PopupWindow并不是一个View,而是一个类,它继承自Window...

    【android开发】手机应用管理器的实现之实现popupWindow类对话框

    1. **创建 `PopupWindow` 对象**: 首先,我们需要创建一个 `PopupWindow` 对象,并设置其内容视图、宽度和高度。内容视图通常是一个自定义的布局,包含对话框中需要展示的按钮和其他元素。例如: ```java View ...

    PopupWindow

    1. **PopupWindow的基本结构** PopupWindow主要由三部分组成:内容视图(ContentView)、背景(Background)和锚点(Anchor View)。内容视图是你想要展示的UI元素,如一个自定义布局;背景可以设置为透明或半透明...

    myandroidmenu_PopupWindow实现Android应用的弹出菜单.rar

    1. **PopupWindow简介** PopupWindow是Android SDK提供的一种类,用于在屏幕任意位置显示一个浮动窗口。它可以包含任何View,并且可以设置为触摸外部时消失或点击某个View时消失。 2. **使用场景** - 底部弹出...

    Android应用源码之多级PopupWindow的小demo.zip

    1. **创建PopupWindow实例**:首先,你需要创建一个PopupWindow对象,传入一个View作为内容视图、宽度和高度。例如: ```java View popupView = LayoutInflater.from(context).inflate(R.layout.popup_window, ...

    安卓popupwindow相关-仿微信popupwindow.zip

    在本资源"安卓popupwindow相关-仿微信popupwindow.zip"中,开发者提供了一种模仿微信应用内PopupWindow实现的方法。虽然由于文件数量众多,无法逐一验证每个文件的具体功能,但我们可以探讨一下PopupWindow的基本...

    popupwindow使用

    PopupWindow是Android开发中一种常用的UI组件,它用于在屏幕上的任意位置弹出一个窗口,通常用来显示一些临时的信息或者提供交互操作。...通过不断的实践和探索,开发者可以创造出更多富有创意的PopupWindow应用场景。

    android popupwindow 底部灰色背景

    1. **创建布局**:首先,我们需要一个XML布局文件来定义PopupWindow的内容。这个布局通常会包含我们需要展示的按钮、文本或其他组件。同时,布局的根元素应该有一个背景颜色属性,设为灰色,例如`android:background...

    Android高级应用源码-PopupWindow模仿UC底部Menu.zip

    1. **PopupWindow的基本概念** PopupWindow是Android SDK中的一个类,它可以显示一个浮动的窗口,这个窗口可以包含任何View。它不同于Dialog,Dialog是系统级别的窗口,而PopupWindow是应用程序级别的,因此...

    Android项目实战--手机卫士21--运行应用以及美化PopupWindow

    本项目实战以"手机卫士21"为主题,将着重讲解如何运行此类应用,并对其中的PopupWindow进行美化。PopupWindow是Android UI设计中一个重要的组件,用于创建弹出式窗口,常用于快捷操作或者辅助提示。 首先,让我们...

    自定义popupWindow修改版

    1. **样式定制**:通过修改PopupWindow的背景、边框、阴影等属性,使其与应用主题风格保持一致。这可以通过设置PopupWindow的背景资源,或者自定义布局中的样式来实现。 2. **动画效果**:为了增加用户交互体验,...

    PopupWindow之显示顶层对话框代码

    1. 创建PopupWindow实例:通过`new PopupWindow(view, width, height, flag)`构造函数来创建PopupWindow,其中`view`是你想要展示的布局,`width`和`height`分别是窗口的宽度和高度,`flag`可以设置一些附加属性,如...

    安卓 PopupWindow 简单使用学习

    1. 创建一个View对象,这将是PopupWindow的内容。 2. 初始化PopupWindow实例,传入内容视图、宽度和高度。 3. 设置PopupWindow的位置,通常使用showAtLocation()方法,需要传入一个父视图、对齐的Gravity和X、Y偏移...

    PopupWindow嵌套Demo

    在实际应用中,有时我们需要在一个PopupWindow中嵌套另一个PopupWindow,以实现更复杂的界面效果。然而,这种操作可能会遇到一些问题,比如"Unable to add window"的异常。下面我们将详细讨论如何处理这个异常,以及...

    Android PopupWindow使用

    1. **初始化PopupWindow**:首先,你需要创建一个PopupWindow实例,通常需要指定内容视图、宽度和高度。内容视图可以是任何布局文件,例如一个LinearLayout或者ListView。 ```java View contentView = ...

    android的popupWindow使用

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

Global site tag (gtag.js) - Google Analytics