iis服务器助手广告广告
返回顶部
首页 > 资讯 > 移动开发 >Android用PopupWindow实现新浪微博的分组信息实例
  • 446
分享到

Android用PopupWindow实现新浪微博的分组信息实例

新浪微博popupwindow新浪分组Android 2022-06-06 06:06:57 446人浏览 薄情痞子
摘要

最近看到新浪微博顶部栏的微博分组效果很炫,从网上查了一些资料明白原来是用PopupWindow实现的,今天自己也写了一个例子实现了这种效果,希望对大家有帮助。 PopupWi

最近看到新浪微博顶部栏的微博分组效果很炫,从网上查了一些资料明白原来是用PopupWindow实现的,今天自己也写了一个例子实现了这种效果,希望对大家有帮助。

PopupWindow就是弹出窗口的意思,类似windows下面的开始按钮。PopupWindow可以实现浮层效果,而且可以自定义显示位置,出现和退出时的动画.

效果如下:

实现思路:

在一个PopupWindow里放一个ListView,从而来达到分组信息的实现!

具体主要实现代码:
group_list.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:layout_margin="0.0px" 
  android:background="@drawable/group_bg" 
  android:orientation="vertical" 
  android:paddingLeft="0.0sp" 
  android:paddingRight="0.0sp" > 
  <TextView 
    android:id="@+id/groupAll" 
    style="@style/grouplist_item_textview" 
    android:layout_width="fill_parent" 
    android:layout_height="@dimen/group_item_height" 
    android:background="@drawable/grouplist_fixed_item_bg" 
    android:gravity="center" 
    android:text="全部" /> 
  <ImageView 
    android:id="@+id/iv_group_list_bg_divider" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_margin="0.0px" 
    android:background="@drawable/group_divider" 
    android:padding="0.0px" /> 
  <ListView 
    android:id="@+id/lvGroup" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:layout_weight="0.0" 
    android:cacheColorHint="#00000000" 
    android:divider="@drawable/group_divider" 
    android:dividerHeight="2.0px" 
    android:drawSelectorOnTop="true" 
    android:fadingEdgeLength="0.0sp" 
    android:listSelector="@drawable/grouplist_item_bg" /> 
</LinearLayout> 

group_item_view.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="@dimen/group_item_height" 
  android:orientation="vertical" > 
  <TextView 
    android:id="@+id/groupItem" 
    style="@style/grouplist_item_textview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:gravity="center" /> 
</LinearLayout> 

Activity中的代码:


package com.jiahui.popwindow; 
import java.util.ArrayList; 
import java.util.List; 
import com.jiahui.adapter.GroupAdapter; 
import android.app.Activity; 
import android.content.Context; 
import android.graphics.drawable.BitmapDrawable; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.WindowManager; 
import android.widget.AdapterView; 
import android.widget.AdapterView.OnItemClickListener; 
import android.widget.ArrayAdapter; 
import android.widget.Button; 
import android.widget.ListView; 
import android.widget.PopupWindow; 
import android.widget.TextView; 
import android.widget.Toast; 
public class PoupWindowDemoActivity extends Activity { 
  private PopupWindow popupWindow; 
  private ListView lv_group; 
  private View view; 
  private View top_title; 
  private TextView tvtitle; 
  private List<String> groups; 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    top_title = this.findViewById(R.id.top_title); 
    tvtitle = (TextView) top_title.findViewById(R.id.tvtitle); 
    tvtitle.setText("做一个低调的码农"); 
    tvtitle.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
        showWindow(v); 
      } 
    }); 
  } 
   
  private void showWindow(View parent) { 
    if (popupWindow == null) { 
      LayoutInflater layoutInflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      view = layoutInflater.inflate(R.layout.group_list, null); 
      lv_group = (ListView) view.findViewById(R.id.lvGroup); 
      // 加载数据 
      groups = new ArrayList<String>(); 
      groups.add("我的微博"); 
      groups.add("好友"); 
      groups.add("亲人"); 
      groups.add("陌生人"); 
      GroupAdapter groupAdapter = new GroupAdapter(this, groups); 
      lv_group.setAdapter(groupAdapter); 
      // 创建一个PopuWidow对象 
      popupWindow = new PopupWindow(view, 200, 250); 
    } 
    // 使其聚集 
    popupWindow.setFocusable(true); 
    // 设置允许在外点击消失 
    popupWindow.setOutsideTouchable(true); 
    // 这个是为了点击“返回Back”也能使其消失,并且并不会影响你的背景 
    popupWindow.setBackgroundDrawable(new BitmapDrawable()); 
    WindowManager windowManager = (WindowManager) getSystemService(Context.WINDOW_SERVICE); 
    // 显示的位置为:屏幕的宽度的一半-PopupWindow的高度的一半 
    int xPos = windowManager.getDefaultDisplay().getWidth() / 2 
        - popupWindow.getWidth() / 2; 
    Log.i("coder", "windowManager.getDefaultDisplay().getWidth()/2:" 
        + windowManager.getDefaultDisplay().getWidth() / 2); 
    // 
    Log.i("coder", "popupWindow.getWidth()/2:" + popupWindow.getWidth() / 2); 
    Log.i("coder", "xPos:" + xPos); 
    popupWindow.showAsDropDown(parent, xPos, 0); 
    lv_group.setOnItemClickListener(new OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> adapterView, View view, 
          int position, long id) { 
        Toast.makeText(PoupWindowDemoActivity.this, 
            "groups.get(position)" + groups.get(position), 1000) 
            .show(); 
        if (popupWindow != null) { 
          popupWindow.dismiss(); 
        } 
      } 
    }); 
  } 
} 
您可能感兴趣的文章:Android仿新浪微博发布微博界面设计(5)Android仿新浪微博自定义ListView下拉刷新(4)Android仿新浪微博分页管理界面(3)Android仿新浪微博oauth2.0授权界面实现代码(2)Android仿新浪微博启动界面或登陆界面(1)Android仿新浪微博、QQ空间等帖子显示(2)Android仿新浪微博、QQ空间等帖子显示(1)Android仿新浪微博/QQ空间滑动自动播放视频功能Android集成新浪微博第三方登录的方法Android仿新浪微博个人信息界面及其他效果


--结束END--

本文标题: Android用PopupWindow实现新浪微博的分组信息实例

本文链接: https://www.lsjlt.com/news/23423.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Android实现新浪微博一键分享的实例代码
    写在本章前愈来愈多的APP支持一键分享至QQ空间、微信朋友圈、新浪微博的功能,同时支持第三方账号登录,如QQ、微信、新浪微博等第三方平台的账号。本章结合当下流行的设计,兼顾免费的开源ShareSDK,结合项目中的实际需求,整合出一套分享源码...
    99+
    2023-05-30
    android 微博分享 roi
  • Android仿新浪微博发送菜单界面的实现
    目录效果图自定义Dialog布局文件Style工具方法接口效果图 接下来就是一波贴代码的过程 自定义Dialog public class SinaSendView exten...
    99+
    2024-04-02
  • 实现仿新浪微博箭头的css写法
    这篇文章主要介绍“实现仿新浪微博箭头的css写法”,在日常操作中,相信很多人在实现仿新浪微博箭头的css写法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”实现仿新浪微博箭头的...
    99+
    2024-04-02
  • 用PHP实现微信消息群发分组管理
    作为当今最受欢迎的社交媒体之一,微信已经成为了现代社会中不可缺少的一部分。对于企业或个人而言,微信公众号已经成为了向用户传递信息、推广产品和服务的重要平台。然而,当用户数量增加时,消息的群发变得非常棘手,因为需要进行分组管理。在这篇文章中,...
    99+
    2023-05-14
    PHP 微信消息群发 分组管理
  • Android仿微信布局的实现示例
    目前没有实现微信的功能,只是对微信的各个界面的调动以及对通讯录,发现和我中各个按钮的设置,同时如果你想尝试给微信中各个按钮背后添加功能时间可以用此作为模板哦,如拍照,朋友圈的添加都可...
    99+
    2024-04-02
  • Android实现微信登录的示例代码
    目录一、布局界面二、MainActivity.java微信登录的实现与qq登录类似。不过微信登录比较麻烦,需要拿到开发者资质认证,花300块钱,然后应用的话还得有官网之类的,就是比较...
    99+
    2024-04-02
  • Android实战ShareSDk的使用,实现一键分享微信好友
    要在Android应用中实现一键分享到微信好友,你可以使用ShareSDK库。下面是使用ShareSDK实现一键分享微信好友的步骤:...
    99+
    2023-09-21
    Android
  • 使用Android怎么实现app分享文件到微信
    使用Android怎么实现app分享文件到微信?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。两种实现方案:使用WXFileObject构造分享方法发送到微信;2...
    99+
    2023-06-15
  • Android 消息分发使用EventBus的实例详解
    Android 消息分发使用EventBus的实例详解1. AndroidStudio使用dependencies { //最新版本 compile 'org.greenrobot:eventbus:3.0.0' //可以翻倍提高E...
    99+
    2023-05-30
    android eventbus roi
  • Android开发中实现登录微信与分享的方法
    本篇文章给大家分享的是有关Android开发中实现登录微信与分享的方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。第一步:申请你的AppID;第二步:依赖dependenci...
    99+
    2023-05-31
    android roi
  • py3nvml实现GPU相关信息读取的示例分析
    py3nvml实现GPU相关信息读取的示例分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。在深度学习或者其他类型的GPU运算过程中,对于GPU信息的监测也是一...
    99+
    2023-06-26
  • py3nvml实现GPU相关信息读取的案例分析
    目录技术背景常规信息读取py3nvml的安装与使用py3nvml绑定GPU卡查看空闲GPU命令行信息获取单独查看驱动版本和显卡型号单独查看显存信息总结概要版权声明参考链接在深度学习或...
    99+
    2024-04-02
  • Flutter实现仿微信分享功能的示例代码
    目录1.首先去pub官网2 在微信开放平台注册开发者账号以及创建你的应用程序3 在分享页面3.1 初始化3.2 检测微信是否安装3.3 分享微信消息总结本文设计到的知识点有主要问题F...
    99+
    2024-04-02
  • 用实例分析Android如何用Mob实现发送短信验证码
    小编这次要给大家分享的是用实例分析Android如何用Mob实现发送短信验证码,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。和室友参加的互联网大赛要做一个 APP,涉及到用户的登录注册,于是上网找了许...
    99+
    2023-05-31
    android mob roi
  • Python实现APP自动化发微信群消息的示例代码
    目录1. 前言2. 爬虫及服务3. 自动化发送群聊​4. 最后1. 前言 但是对于很多人来说,首先编写一款 App 需要一定的移动端开发经验,其次还需要另外编写无障碍服务应用,如此显...
    99+
    2024-04-02
  • Android如何实现仿微信语音消息的录制和播放功能
    小编给大家分享一下Android如何实现仿微信语音消息的录制和播放功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一、简述效果:实现功能:长按Button时改变Button显示文字,弹出Dialog(动态更新音量),动态...
    99+
    2023-05-30
    android
  • 微信小程序实现简单手写签名组件的方法实例
    目录背景:需求:效果一、思路 二、实现 1. 页面与样式 2. 初始化 3. 点击时 4. 签名时 三、总结 背景: 在做项目过程中,需要在微信小程序中实现手写签名组件。在网上找了微...
    99+
    2024-04-02
  • 微信小程序中实现计算器的案例分析
    这篇文章将为大家详细讲解有关微信小程序中实现计算器的案例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。具体内容如下项目展示页面设计分为上面输入的显示部分和下面按键部分<!--pages/inde...
    99+
    2023-06-20
  • 微信小程序底层实现原理的示例分析
    这篇文章给大家分享的是有关微信小程序底层实现原理的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。  根据小程序开发文档-框架(https://mp.weixin.qq.com/debug/wxadoc/d...
    99+
    2023-06-26
  • 使用Python实现企业微信通知功能案例分析
    目录前言1、新建应用2、获取Secret3、代码实现4、实现效果:前言 常见的通知方式有:邮件,电话,短信,微信。短信和电话:通常是收费的,较少使用;邮件:适合带文件类型的通知,较正...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作