我什么都有,就是没钱

本人的android:qq群:181235811,欢迎大家加入讨论技术问题呀
  博客园  :: 首页  :: 新随笔  :: 联系 :: 管理

android Popupwindow 的一个demo源码

Posted on 2015-03-12 18:15  我什么都有,就是没钱  阅读(215)  评论(0编辑  收藏  举报

一直想用一下PopupWindow,就是苦于没有demo,自己去研究有太懒,刚好最近研究推送,下载了一个腾讯信鸽的demo,里面用到了一个PopupWindow,效果还不错,弄下来记录一下:

1.核心java代码如下:

View v = LayoutInflater.from(this).inflate(R.layout.menu_item, null); //加载popupwindow的自定义view
        final PopupWindow pw = new PopupWindow(v, LayoutParams.WRAP_CONTENT,
                LayoutParams.WRAP_CONTENT);
        pw.setContentView(v);
        pw.setOutsideTouchable(true);
        pw.setFocusable(true);
        pw.setBackgroundDrawable(new BitmapDrawable());
        pw.showAsDropDown(findViewById(R.id.img_right)); //现在是img_right这个view的下面

 

2.下面是menu_item这个layout的内容

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="@dimen/qq_dimen_330px"
    android:layout_height="wrap_content"
    android:layout_gravity="right"
    android:background="@android:color/transparent"
    android:orientation="vertical" >

    <LinearLayout
        android:layout_width="@dimen/qq_dimen_330px"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:background="@android:color/black"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/action_device_token"
            android:layout_width="match_parent"
            android:layout_height="@dimen/qq_dimen_80px"
            android:gravity="center"
            android:singleLine="true"
            android:text="@string/action_device_token"
            android:textColor="@android:color/white" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="@color/fuxk_base_divide_line_color" />

        <TextView
            android:id="@+id/action_help_center"
            android:layout_width="match_parent"
            android:layout_height="@dimen/qq_dimen_80px"
            android:gravity="center"
            android:singleLine="true"
            android:text="@string/action_help_center"
            android:textColor="@android:color/white" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="@color/fuxk_base_divide_line_color" />

        <TextView
            android:id="@+id/action_about_us"
            android:layout_width="match_parent"
            android:layout_height="@dimen/qq_dimen_80px"
            android:gravity="center"
            android:singleLine="true"
            android:text="@string/action_about_us"
            android:textColor="@android:color/white" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="@color/fuxk_base_divide_line_color" />

        <TextView
            android:id="@+id/action_clear"
            android:layout_width="match_parent"
            android:layout_height="@dimen/qq_dimen_80px"
            android:gravity="center"
            android:singleLine="true"
            android:text="@string/action_clear"
            android:textColor="@android:color/white" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="@color/fuxk_base_divide_line_color" />

        <TextView
            android:id="@+id/action_setting"
            android:layout_width="match_parent"
            android:layout_height="@dimen/qq_dimen_80px"
            android:gravity="center"
            android:singleLine="true"
            android:text="@string/action_setting"
            android:textColor="@android:color/white" />

        <View
            android:layout_width="match_parent"
            android:layout_height="1px"
            android:background="@color/fuxk_base_divide_line_color" />

        <TextView
            android:id="@+id/action_diagnosis"
            android:layout_width="match_parent"
            android:layout_height="@dimen/qq_dimen_80px"
            android:gravity="center"
            android:singleLine="true"
            android:text="@string/action_diagnosis"
            android:textColor="@android:color/white" />
    </LinearLayout>

</RelativeLayout>

对应的布局效果为:

这个地方比较好的是,不用自己去制定popupwindow的显示位置了,直接在layout中定位显示,感觉会比自己代码设定位置好些