实现原理是上方使用HorizontalScrollView这个可以水平横向拖动的控件,在其中加入了5个RadioButton;下方使用的是ViewPager,里面加入了7个Layout文件,其中第一个和最后一个为空,是为了实现拖到第一个屏幕的时候还能往外拖动的效果。
package com.zj.popupwindow;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import android.app.Activity;
import android.graphics.drawable.BitmapDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.PopupWindow;
import android.widget.PopupWindow.OnDismissListener;
import android.widget.SimpleAdapter;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
private boolean mIsopen = false; //是否已经打开
private ImageView mImageView; //三角形图标
private LinearLayout mLinearLayout;
private PopupWindow mPopupWindow;
private ArrayList<HashMap<String, Object>> mArrayList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mLinearLayout = (LinearLayout)findViewById(R.id.pop_parent);
mImageView = (ImageView)findViewById(R.id.imageView1);
mLinearLayout.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
mIsopen = !mIsopen;
if (mIsopen) {
mImageView.setBackgroundResource(R.drawable.icon_arrow_down);
}else {
mImageView.setBackgroundResource(R.drawable.icon_arrow_up);
}
//设置popupwindow中的listView
mArrayList = createData();
View _View = getLayoutInflater().inflate(R.layout.popupwindow, null);
ListView _ListView = (ListView) _View.findViewById(R.id.list);
SimpleAdapter _SimpleAdapter = new SimpleAdapter(
MainActivity.this, mArrayList,
R.layout.listview_item, new String[]{"zj"},
new int[]{R.id.list_item_txt}
);
_ListView.setAdapter(_SimpleAdapter);
_ListView.setOnItemClickListener(new MyListOnItemClick());
/*
* 这个去掉了也没什么影响,先留下
* 通过ListView的setItemsCanFocus(true)方法并不可以使ItemView
* 在touch mode下可以获取焦点,他只是表明在由ListAdapter创建的视图中
* ,可包含能获得焦点的项目.
*/
_ListView.setItemsCanFocus(false);
//设置PopupWindow
mPopupWindow = new PopupWindow(
_View,
160,
220
);
//注意下面所做的4条是为了使 点击popuWindow 以外的区域能够关闭它。
// 使其聚焦
mPopupWindow.setFocusable(true);
// 设置允许在外点击消失
mPopupWindow.setOutsideTouchable(true);
//刷新状态
mPopupWindow.update();
//点back键和其他地方使其消失,设置了这个才能触发OnDismisslistener
mPopupWindow.setBackgroundDrawable(new BitmapDrawable());
mPopupWindow.showAsDropDown(findViewById(R.id.pop_parent), -50, 0);
//mPopupWindow.showAtLocation(findViewById(R.id.pop_parent), Gravity.CENTER_HORIZONTAL | Gravity.TOP, 0, (int)getResources().getDimension(R.dimen.pop_y));
mPopupWindow.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
mIsopen = ! mIsopen;
if (mIsopen) {
mImageView.setBackgroundResource(R.drawable.icon_arrow_down);
}else {
mImageView.setBackgroundResource(R.drawable.icon_arrow_up);
}
Log.i("zj", "onDismiss");
}
});
}
});
}
private ArrayList<HashMap<String, Object>> createData(){
HashMap<String, Object> map1 = new HashMap<String, Object>();
map1.put("zj", "美食");
HashMap<String, Object> map2 = new HashMap<String, Object>();
map2.put("zj", "娱乐");
HashMap<String, Object> map3 = new HashMap<String, Object>();
map3.put("zj", "购物");
HashMap<String, Object> map4 = new HashMap<String, Object>();
map4.put("zj", "电影");
ArrayList<HashMap<String, Object>> _ArrayList = new ArrayList<HashMap<String,Object>>();
_ArrayList.add(map1);
_ArrayList.add(map2);
_ArrayList.add(map3);
_ArrayList.add(map4);
return _ArrayList;
}
class MyListOnItemClick implements OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO Auto-generated method stub
HashMap<String, Object> temp = mArrayList.get(arg2);
mPopupWindow.dismiss();
Toast.makeText(MainActivity.this, temp.get("zj").toString(), 1).show();
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<HorizontalScrollView
android:layout_width="match_parent"
android:layout_height="50dp"
android:fadingEdge="@null"
android:scrollbars="none"
android:background="#555555"
android:id="@+id/horizontalScrollView"
>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#33b5e5"
>
<RadioGroup
android:id="@+id/radioGroup"
android:layout_width="fill_parent"
android:layout_height="49dp"
android:orientation="horizontal"
android:layout_alignParentTop="true"
>
<RadioButton
style="@style/radioButton"
android:text="one"
android:id="@+id/btn1"
/>
<RadioButton
style="@style/radioButton"
android:text="two"
android:id="@+id/btn2"
/>
<RadioButton
style="@style/radioButton"
android:text="three"
android:id="@+id/btn3"
/>
<RadioButton
style="@style/radioButton"
android:text="four"
android:id="@+id/btn4"
/>
<RadioButton
style="@style/radioButton"
android:text="five"
android:id="@+id/btn5"
/>
</RadioGroup>
<ImageView
android:id="@+id/img1"
android:layout_width="100dp"
android:layout_height="4dp"
android:background="#33b5e5"
android:layout_alignParentBottom="true"
/>
</RelativeLayout>
</HorizontalScrollView>
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
http://zhengjiong.iteye.com/blog/1539951
分享到:
相关推荐
1、文件内容:qt5-qtmultimedia-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtmultimedia-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:范例参考毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。VUE框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
Self-supervised Equivariant Attention Mechanismfor Weakly Supervised Semantic Segmentation,含有完整的代码和论文
本资源包含数据集有猫的三种声音-高音声、哈气声和喵呜声。 通过python、pytorch环境运行。 环境的安装可参考: https://blog.csdn.net/no_work/article/details/145416261 代码整体是非常简便的,总共三个py部分和一个数据集在data文件夹下。 运行python 01数据集文本生成制作.py 会在logs文件夹下生成2个txt文本,分别存放了wav音频的路径和对应的标签。 运行python 02train.py就会训练这个txt文本里面的数据,并将训练的模型与验证集里面的数据进行验证。 最后模型也是保存在logs文件夹下。 最后运行python 03pyqt.py即可加载训练好的模型,对输入的音频进行识别。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
Global Context Networks,含有完整的代码和论文
1、文件内容:rhn-setup-gnome-2.0.2-24.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/rhn-setup-gnome-2.0.2-24.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于FAST与MATLAB Simulink联合仿真的风机变桨控制研究:独立与统一变桨在非线性风力发电机中的对比与应用分析,风机变桨控制基于FAST与MATLAB SIMULINK联合仿真模型非线性风力发电机的 PID独立变桨和统一变桨控制下仿真模型,对于5WM非线性风机风机进行控制 链接simulink的scope出转速对比,桨距角对比,叶片挥舞力矩,轮毂处偏航力矩,俯仰力矩等载荷数据对比图,在trubsim生成的3D湍流风环境下模拟 统一变桨反馈信号是转速,独立变桨反馈是叶根载荷 包含openfast与matlab simulink联合仿真的建模 NREL免费提供的5MW风机参数建模 可以提供参考文献 ,FAST模型; MATLAB SIMULINK联合仿真; 风机变桨控制; 非线性风力发电机; PID独立变桨控制; 统一变桨控制; 5WM风机; 仿真模型; 桨距角对比; 转速对比; 3D湍流风环境模拟; OpenFAST与MATLAB联合仿真建模; NREL 5MW风机参数建模。,基于OpenFAST与MATLAB/Simulink联合仿真模型的5MW风机变桨控制研究
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。VUE框架构建前端交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
1、文件内容:qt5-qtimageformats-doc-5.9.7-2.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtimageformats-doc-5.9.7-2.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于Matlab Simulink的有源电力滤波器(APF)模型治理不控整流与三相不平衡电能质量问题仿真演示,有源电力滤波器(APF)模型 Matlab simulink 质量过硬 可用于治理不控整流和不平衡负载带来的电能质量问题:仿真总时长0.3s,0.1s时接入APF, 0.1-0.2s治理不控整流带来的谐波电流,0.2-0.3治理三相不平衡带来的不平衡电流。 ,核心关键词:有源电力滤波器(APF)模型; Matlab simulink; 质量过硬; 治理电能质量问题; 仿真; 不控整流; 不平衡负载; 谐波电流; 三相不平衡电流。,有源电力滤波器模型仿真:治理不控整流与三相不平衡的电能质量优化
1、文件内容:qt5-qtserialport-doc-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qtserialport-doc-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:配套答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
通过 MATLAB 读取 N10 激光雷达 的数据,并进行 实时 3D 点云可视化。数据通过 串口 传输,并经过解析后转换为 三维坐标点,最终使用 pcplayer 进行动态渲染。
基于雨流计数法的源荷储双层协同优化配置:储能系统寿命评估与充放电策略研究,基于雨流计数法的源-荷-储双层协同优化配置 关键词:双层规划 雨流计算法 储能优化配置 参考文档:《储能系统容量优化配置及全寿命周期经济性评估方法研究》第三章 仿真平台:MATLAB CPLEX 主要内容:代码主要做的是一个源荷储优化配置的问题,采用双层优化,外层优化目标的求解依赖于内层优化的储能系统充放电曲线,基于储能系统充放电曲线,采用雨流计数法电池健康状态数学模型,对决策变量储能功率和容量的储能系统寿命年限进行评估;内层储能系统充放电曲线的优化受外层储能功率和容量决策变量的影响,不同的功率和容量下,储能装置的优化充放电功率曲线存在差异。 代码非常精品,注释保姆级,靠谱值得信赖。 ,双层规划;雨流计数法;储能优化配置;充放电曲线;电池健康状态。,基于雨流计数法的双层协同储能优化配置研究
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
资源说明: 1:csdn平台资源详情页的文档预览若发现'异常',属平台多文档切片混合解析和叠加展示风格,请放心使用。 2:32页图文详解文档(从零开始项目全套环境工具安装搭建调试运行部署,保姆级图文详解),旨在为更多的人甚至零基础的人也能运行、使用和学习。 3:配套毕业论文,万字长文,word文档,支持二次编辑。 4:范例参考答辩ppt,pptx格式,支持二次编辑。 5:工具环境、ppt参考模板、相关电子教程、视频教学资源分享。 6:资源项目源码均已通过严格测试验证,保证能够正常运行,本项目仅用作交流学习参考,请切勿用于商业用途。 7:项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通。 内容概要: 本系统基于B/S网络结构,在IDEA中开发。服务端用Java并借ssm框架(Spring+SpringMVC+MyBatis)搭建后台。用MySQL存储数据,可靠性强。 能学到什么: 使用ssm搭建后台。学习使用jsp、html构建交互界面、前后端数据交互、MySQL管理数据、从零开始环境搭建、调试、运行、打包、部署流程。
1、文件内容:qt5-qttools-libs-designercomponents-5.9.7-1.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/qt5-qttools-libs-designercomponents-5.9.7-1.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装