分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow
也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!
Android-自定义PopupWindow
2014年5月12日
PopupWindow在应用中应该是随处可见的,很常用到,比如在旧版本的微信当中就用到下拉的PopupWindow,那是自定义的。新版微信5.2的ActionBar,有人已经模仿了它,但微信具体是使用了ActionBar还是其他的笔者倒是不太清楚,本篇博客主要介绍如何自定义一个PopupWindow来供自己在开发应用时使用。因为笔者最近在开发一款应用时用到这个知识点,所以自己实现了类似新版微信的效果。
效果图如下:
首先从布局开始
/14_CustomPopupWindow/res/layout/activity_swipe.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/animation_layout_content" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/abc_ab_bottom_solid_dark_holo" android:padding="12dip" > <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:gravity="center" android:orientation="horizontal" > <ImageView android:layout_width="30dp" android:layout_height="30dp" android:src="@drawable/ic_launcher" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:text="任务系统" android:textColor="@color/lightgray" android:textSize="18sp" /> </LinearLayout> <LinearLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:gravity="center" android:orientation="horizontal" > <Button android:id="@+id/btnSearch" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginRight="20dip" android:background="@drawable/actionbar_search_icon" android:visibility="gone" /> <Button android:id="@+id/btnAdd" android:layout_width="30dp" android:layout_height="30dp" android:layout_marginRight="20dip" android:background="@drawable/actionbar_add_icon" /> <Button android:id="@+id/btnSet" android:layout_width="30dp" android:layout_height="30dp" android:background="@drawable/actionbar_more_icon" /> </LinearLayout> </RelativeLayout></LinearLayout>
/14_CustomPopupWindow/res/layout/add_popup_dialog.xml
- <code class="language-html"><?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:gravity="center_horizontal"
- android:orientation="vertical" >
- <LinearLayout
- android:id="@+id/pop_layout2"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:layout_alignParentTop="true"
- android:background="@drawable/abc_ab_bottom_solid_dark_holo"
- android:gravity="center_horizontal"
- android:orientation="vertical" >
- <LinearLayout
- android:id="@+id/add_task_layout"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:padding="8dp" >
- <ImageView
- android:layout_width="35dp"
- android:layout_height="35dp"
- android:scaleType="fitCenter"
- android:src="@drawable/ofm_add_icon" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:layout_marginLeft="10dp"
- android:gravity="center"
- android:text="添加任务"
- android:textColor="@color/white"
- android:textSize="15dip" />
- </LinearLayout>
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="0.2dp"
- android:background="@color/black" />
- <LinearLayout
- android:id="@+id/team_member_layout"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:orientation="horizontal"
- android:padding="8dp" >
- <ImageView
- android:layout_width="35dp"
- android:layout_height="35dp"
- android:scaleType="fitCenter"
- android:src="@drawable/ofm_profile_icon" />
- <TextView
- android:layout_width="wrap_content"
- android:layout_height="fill_parent"
- android:layout_marginLeft="10dp"
- android:gravity="center"
- android:text="团队成员"
- android:textColor="@color/white"
- android:textSize="15dip" />
- </LinearLayout>
- </LinearLayout>
- </RelativeLayout></code>
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical" > <LinearLayout android:id="@+id/pop_layout2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="@drawable/abc_ab_bottom_solid_dark_holo" android:gravity="center_horizontal" android:orientation="vertical" > <LinearLayout android:id="@+id/add_task_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" > <ImageView android:layout_width="35dp" android:layout_height="35dp" android:scaleType="fitCenter" android:src="@drawable/ofm_add_icon" /> <TextView android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="10dp" android:gravity="center" android:text="添加任务" android:textColor="@color/white" android:textSize="15dip" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="0.2dp" android:background="@color/black" /> <LinearLayout android:id="@+id/team_member_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" > <ImageView android:layout_width="35dp" android:layout_height="35dp" android:scaleType="fitCenter" android:src="@drawable/ofm_profile_icon" /> <TextView android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="10dp" android:gravity="center" android:text="团队成员" android:textColor="@color/white" android:textSize="15dip" /> </LinearLayout> </LinearLayout></RelativeLayout>
/14_CustomPopupWindow/res/layout/more_popup_dialog.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="vertical" > <LinearLayout android:id="@+id/pop_layout" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentRight="true" android:layout_alignParentTop="true" android:background="@drawable/abc_ab_bottom_solid_dark_holo" android:gravity="center_horizontal" android:orientation="vertical" > <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" > <ImageView android:layout_width="50dp" android:layout_height="50dp" android:src="@drawable/defalt_head" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="left|center_horizontal" android:orientation="vertical" android:padding="5dp" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="wwj" android:textColor="@color/white" android:textSize="15sp" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="whatswwj" android:textColor="@color/green" android:textSize="15sp" /> </LinearLayout> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="0.2dp" android:background="@color/black" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" > <ImageView android:layout_width="35dp" android:layout_height="35dp" android:scaleType="fitCenter" android:src="@drawable/ofm_photo_icon" /> <TextView android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="10dp" android:gravity="center" android:text="我的相册" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="0.2dp" android:background="@color/black" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" android:visibility="gone" > <ImageView android:layout_width="35dp" android:layout_height="35dp" android:scaleType="fitCenter" android:src="@drawable/ofm_collect_icon" /> <TextView android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="10dp" android:gravity="center" android:text="我的收藏" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="0.2dp" android:background="@color/black" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" android:visibility="gone" > <ImageView android:layout_width="35dp" android:layout_height="35dp" android:scaleType="fitCenter" android:src="@drawable/ofm_card_icon" /> <TextView android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="10dp" android:gravity="center" android:text="我的银行卡" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="0.2dp" android:background="@color/black" android:visibility="gone" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" > <ImageView android:layout_width="35dp" android:layout_height="35dp" android:scaleType="fitCenter" android:src="@drawable/ofm_setting_icon" /> <TextView android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="10dp" android:gravity="center" android:text="设置" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> <TextView android:layout_width="fill_parent" android:layout_height="0.2dp" android:background="@color/black" /> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:padding="8dp" > <ImageView android:layout_width="35dp" android:layout_height="35dp" android:scaleType="fitCenter" android:src="@drawable/ofm_blacklist_icon" /> <Button android:id="@+id/btn_cancel" android:layout_width="wrap_content" android:layout_height="fill_parent" android:layout_marginLeft="10dp" android:background="@null" android:gravity="center" android:text="退出登录" android:textColor="@color/white" android:textSize="15sp" /> </LinearLayout> </LinearLayout></RelativeLayout>
以上分别是主页面和两个popupWindow布局
下面自定义两个PopupWindow,自己封装自己想要的PopuoWindow,这里只是给