`
大头K
  • 浏览: 186899 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

一个更多按钮popwindow

 
阅读更多
实现效果,如下图。
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:gravity="center_horizontal"
    android:orientation="vertical" >


    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                android:layout_marginTop="@dimen/icon_margin_top"
                android:background="@drawable/menu_sharepage" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="分享好友"
                android:textColor="#FFF"
                android:textSize="@dimen/text_size_ten" />
        </LinearLayout>

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                android:layout_marginTop="@dimen/icon_margin_top"
                android:background="@drawable/menu_bookmark" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="意见反馈"
                android:textColor="#FFF"
                android:textSize="@dimen/text_size_ten" />
        </LinearLayout>

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                android:layout_marginTop="@dimen/icon_margin_top"
                android:background="@drawable/menu_bookmark_sync_import" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="版本更新"
                android:textColor="#FFF"
                android:textSize="@dimen/text_size_ten" />
        </LinearLayout>

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                android:layout_marginTop="@dimen/icon_margin_top"
                android:background="@drawable/menu_about" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="关于"
                android:textColor="#FFF"
                android:textSize="@dimen/text_size_ten" />
        </LinearLayout>
    </LinearLayout>
    
    <!-- 第二排 -->
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                android:background="@drawable/menu_quit" />

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:text="退出"
                android:textColor="#FFF"
                android:textSize="@dimen/text_size_ten" />
        </LinearLayout>
         <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

            <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                />

        </LinearLayout>
         <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

              <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                />
        </LinearLayout>
         <LinearLayout
            xmlns:android="http://schemas.android.com/apk/res/android"
            android:layout_width="@dimen/layout_size"
            android:layout_height="@dimen/layout_size"
            android:orientation="vertical" >

              <ImageView
                android:layout_width="@dimen/icon_size"
                android:layout_height="@dimen/icon_size"
                android:layout_gravity="center"
                />
        </LinearLayout>
    </LinearLayout>

</LinearLayout>


java文件
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.Gravity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.PopupWindow;
import android.widget.PopupWindow.OnDismissListener;

public class MainActivity extends Activity
{
	private boolean isOpenPop = false;
	private PopupWindow window;
	private Button moreBtn;

	@Override
	protected void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		moreBtn = (Button) findViewById(R.id.btn);
		moreBtn.setOnClickListener(new OnClickListener()
		{
			public void onClick(View v)
			{
				changPopState(v);
			}
		});
	}

	/**
	 * 更改Pop状态
	 * */
	public void changPopState(View v)
	{

		isOpenPop = !isOpenPop;
		if (isOpenPop)
		{
			//arrow.setBackgroundResource(R.drawable.icon_arrow_up);
			popAwindow(v);

		} else
		{
			//arrow.setBackgroundResource(R.drawable.icon_arrow_down);
			if (window != null)
			{
				window.dismiss();
			}
		}
	}

	private void popAwindow(View parent)
	{
		if (window == null)
		{
			LayoutInflater lay = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
			View v = lay.inflate(R.layout.more_pop_item, null);
			
			int x = (int) getResources().getDimension(R.dimen.pop_x);
			int y = (int) getResources().getDimension(R.dimen.pop_y);
			window = new PopupWindow(v, x, y);
		}
		window.setBackgroundDrawable(getResources().getDrawable(
				R.drawable.preview_button));
		window.getBackground().setAlpha(150);
		window.setFocusable(true);
		window.setOutsideTouchable(false);
		window.setOnDismissListener(new OnDismissListener()
		{
			public void onDismiss()
			{
				isOpenPop = false;
				//arrow.setBackgroundResource(R.drawable.icon_arrow_down);
			}
		});
		window.update();
		window.showAtLocation(parent, Gravity.CENTER_HORIZONTAL | Gravity.TOP,
				0, (int) getResources().getDimension(R.dimen.pop_layout_y));
	}
}


  • 大小: 41.6 KB
分享到:
评论

相关推荐

    自定义popwindow炫酷UI

    通过查看这些代码,你可以学习到更多实际应用中的技巧,比如如何使用动画库实现更炫酷的弹出效果,如何处理复杂的交互逻辑等。 总之,自定义PopWindow是提升Android应用用户体验的重要手段。通过熟练掌握PopWindow...

    几种popwindow

    - **更多源码打包下载.url**:这是一个链接,可能指向更多关于PopWindow或其他Android开发相关的源码库,方便开发者深入研究和学习。 - **Popmenu**:这可能是一个实现了下拉菜单功能的PopWindow类,或者是包含此类...

    自定义PopWindow

    在Android开发中,`PopWindow`是一个非常实用的组件,常用于实现各种弹出窗口的效果,比如下拉菜单、提示信息等。自定义`PopWindow`可以满足项目的个性化需求,提高用户体验。本教程将深入讲解如何自定义一个`...

    头部Menu按钮弹出PopWindow菜单源码

    在Android应用开发中,"头部Menu按钮弹出PopWindow菜单源码"是一个常见的交互设计,它使得用户可以方便地访问更多的功能选项。PopWindow是Android系统提供的一种轻量级窗口,它可以灵活地显示在屏幕的任何位置,常...

    PopWindow的实例

    帮助文档.url和更多海量源码下载.url可能是指向更全面的教程或者代码库的链接,可以提供更多的学习资源。EX_04_23可能是某个示例工程或具体实现的代码文件,通过查看这些文件,你可以深入理解PopWindow的实际运用。 ...

    Popwindow一个简单的弹出框

    标题"Popwindow一个简单的弹出框"暗示我们将探讨如何创建一个基本的`PopupWindow`实例并展示在应用中。在这个过程中,我们会涉及以下几个关键知识点: 1. **PopupWindow的创建**: 创建`PopupWindow`对象需要传入...

    自定义屏幕截图+popwindow

    在Android开发中,自定义屏幕截图以及PopWindow的实现是一个常用的功能,这通常涉及到用户交互、图像处理和UI设计等多个方面。以下将详细介绍这两个技术点。 1. 自定义屏幕截图: 自定义屏幕截图通常需要利用...

    popwindow下拉效果

    本教程将详细介绍如何在Android中实现一个PopWindow的下拉效果。 首先,我们需要了解PopWindow的基本结构。PopWindow由三部分组成:内容视图、背景视图和锚点视图。内容视图是PopWindow显示的具体内容,背景视图...

    使用PopWindow构建二级菜单

    `PopWindow`在Android中主要用于创建临时的浮动窗口,它可以像Toast一样显示,但又比Toast拥有更多的自定义能力,如添加点击事件、设置背景、尺寸等。它不是Android系统自带的控件,而是通过`PopupWindow`类来实现的...

    popwindow的简单封装

    在实际应用中,你还可以根据需求添加更多功能,如动画效果、触摸外部自动关闭、设置背景模糊等。同时,为了适应不同的UI设计,你可能需要创建多个布局文件,如`popwindow_menu.xml`、`popwindow_alert.xml`等,对应...

    android自定义单选、多选对话框及popwindow窗口实例源码

    2. 创建一个包含所需视图的布局文件,例如包含按钮、文本等元素。 3. 使用`PopupWindow`类实例化PopWindow,传入布局、宽度和高度参数。 4. 设置PopWindow的显示位置,通常通过`showAtLocation()`或`showAsDropDown...

    popwindow 控件右键菜单

    在布局文件中,我们可以设计一个包含多个菜单项的`LinearLayout`或`ListView`,每个菜单项对应一个操作。将这个布局设置为`PopupWindow`的视图后,`PopupWindow`就可以显示这些菜单项了。 接下来,我们讨论如何添加...

    android下popwindow的使用

    在`PopWindowDemo`项目中,你可以看到一个具体的示例,它展示了如何创建一个包含多个选项的PopupWindow。这个Demo可能包含了自定义的布局文件,里面定义了多个按钮或者其他视图元素,然后在Java代码中实例化...

    popwindow\三维悬浮图标、侧滑简单Demo

    它的主要功能是在主界面上弹出一个窗口,可以包含按钮、文本输入框等各种视图,常用于下拉菜单、浮动提示框等场景。创建PopWindow时,你需要指定内容视图、宽度和高度,然后可以通过showAsDropDown或showAtLocation...

    Android应用源码之自定义单选、多选对话框及popwindow窗口实例源码.zip

    在这个“Android应用源码之自定义单选、多选对话框及popwindow窗口实例源码.zip”压缩包中,包含了一个JavaApk源码说明.txt文件,可能详细解释了源码的实现逻辑和使用方法,以及一个名为"点这里查看更多优质源码~....

    android下拉列表样式筛选组件,仿美团popwindow实现

    `PopWindow`是Android中的一个非常实用的组件,它可以在屏幕上的任意位置弹出一个小窗口,通常用于展示更多的操作选项或者快速设置。在本案例中,我们将使用`PopWindow`来实现下拉筛选菜单。 1. **创建布局文件**:...

    popwindow简单实现顶部筛选

    在Android开发中,`PopupWindow`是一个非常实用的组件,常用于实现各种临时弹出窗口,比如顶部筛选、下拉菜单、悬浮按钮等。本文将详细介绍如何使用`PopupWindow`来简单实现一个顶部筛选功能,并探讨相关的设计和...

    popwindow弹窗.zip

    在Android应用设计中,PopWindow提供了比对话框(Dialog)更多的灵活性,因为它可以自定义大小、位置,并且不会阻塞用户与背景界面的交互。本篇文章将深入探讨PopWindow的原理、使用方法以及如何实现自定义功能。 ...

    安卓Dialog对话框相关-自定义单选多选对话框及popwindow窗口实例源码.rar

    源码中提供的注释和说明文档(如JavaApk源码说明.txt)可以帮助理解代码结构和功能,而`点这里查看更多优质源码~.url`可能是一个链接,指向更多的学习资源。 总之,这个压缩包中的源码实例为Android开发者提供了...

Global site tag (gtag.js) - Google Analytics