高级控件 popwindow 与gridview的组合应用
Gridview 的布局设置
<GridView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:numColumns="4"//4列
android:id="@+id/gg"
android:background="#cf1818">//背景颜色
</GridView>
<Button//按钮用来关闭gridview
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="取消分享"
android:id="@+id/popb"
android:gravity="center"
android:layout_below="@+id/gg"/>
Popwindo的布局
<Button//简单的一个按钮,用来弹出gridview界面
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/bb"
android:text="分享"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
main函数的书写
public class Main2Activity extends AppCompatActivity {
private Button bt;
private PopupWindow popupWindow;
private GridView gridView;
private View view;
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pop_gild);
view=getLayoutInflater().inflate(R.layout.grid,null);//得到gridview的那个布局界面
gridView=(GridView)view.findViewById(R.id.gg);//得到布局界面的id 进行监听
/*
往gridvie中存放数据
*/
List list=new ArrayList();
Map map=new HashMap();
map.put("img", R.mipmap.a);
map.put("name", "朋友圈");
list.add(map);
map=new HashMap();
map.put("img", R.mipmap.a);
map.put("name", "朋友圈");
list.add(map);
map=new HashMap();
map.put("img", R.mipmap.a);
map.put("name", "朋友圈");
list.add(map);
map=new HashMap();
map.put("img", R.mipmap.a);
map.put("name", "朋友圈");
list.add(map);
map=new HashMap();
map.put("img", R.mipmap.a);
map.put("name", "朋友圈");
list.add(map);
map=new HashMap();
map.put("img", R.mipmap.a);
map.put("name", "朋友圈");
list.add(map);
map=new HashMap();
map.put("img", R.mipmap.a);
map.put("name", "朋友圈");
list.add(map);
SimpleAdapter ss=new SimpleAdapter(this,list,R.layout.grid_examp,
new String[]{"img","name"},new int[]{R.id.imm,R.id.tt1});//gridview的适配器,以你写好的模板格式填充数据
gridView.setAdapter(ss); bt = (Button) findViewById(R.id.bb);
bt.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow=getPopupWindow(view); //调用popwindow 控件
//设置按钮隐藏
bt.setVisibility(View.GONE);
}
});
button=(Button)view.findViewById(R.id.popb);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
popupWindow.dismiss();//gridview中的取消按钮监听,点击取消popwinodw界面
}
});
}
//定义一个内部类 实现popwindow视图
public PopupWindow getPopupWindow(View view){
popupWindow=new PopupWindow(view, LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
popupWindow.setOutsideTouchable(false);//点击pop外部是否取消
popupWindow.setBackgroundDrawable(new ColorDrawable());//给popwindow一个空背景
popupWindow.setAnimationStyle(R.style.pop2);//设置他的出现风格,这里是出现速度 ,详情见下面代码
//设置出现与消失时的背景透明度
WindowManager.LayoutParams ll=
getWindow().getAttributes();
ll.alpha=0.6f;
getWindow().setAttributes(ll);
popupWindow.showAtLocation(bt, Gravity.BOTTOM, 0, 0);//从底部出现
popupWindow.setOnDismissListener(new PopupWindow.OnDismissListener() {
@Override
public void onDismiss() {
//设置背景透明度
WindowManager.LayoutParams ll=
getWindow().getAttributes();
ll.alpha=1f; //要与上边的ll形成对比 才能看到较明显的效果
getWindow().setAttributes(ll);
bt.setVisibility(View.VISIBLE);//让隐藏的按钮再出来
}
});
return popupWindow;
}
}
附 style 代码
<style name="pop2">
<item name="android:windowEnterAnimation">
@anim/pop_enter2
</item>
<item name="android:windowExitAnimation">
@anim/pop_exit2
</item>
</style>
其中pop——enter2和pop-exit2分别为出现消失的设置
pop——enter2
<translate
android:duration="3000"
android:fromYDelta="100%p"
android:toYDelta="0">
</translate>
<alpha
android:fromAlpha="0"
android:duration="3000"
android:toAlpha="1"/>
pop-exit2
<translate
android:duration="3000"
android:fromYDelta="0"
android:toYDelta="100%p"
></translate>
<alpha
android:fromAlpha="1"
android:duration="3000"
android:toAlpha="0"/>
高级控件 popwindow 与gridview的组合应用的更多相关文章
- Android高级控件--AdapterView与Adapter
在J2EE中提供过一种非常好的框架--MVC框架,实现原理:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上.在Android中有这样一种高级控件 ...
- UGUI核心元素、基本控件、复合控件和高级控件
UGUI的核心元素: Anchor(锚点):每个控件都有一个Anchor属性,控件的4个顶点,分别与Anchor的4个点保持不变的距离,不受屏幕分辨率变化的影响. 系统默认设置控件的Anchor位置在 ...
- Android 高级控件(七)——RecyclerView的方方面面
Android 高级控件(七)--RecyclerView的方方面面 RecyclerView出来很长时间了,相信大家都已经比较了解了,这里我把知识梳理一下,其实你把他看成一个升级版的ListView ...
- Android高级控件(六)——自定义ListView高仿一个QQ可拖拽列表的实现
Android高级控件(六)--自定义ListView高仿一个QQ可拖拽列表的实现 我们做一些好友列表或者商品列表的时候,居多的需求可能就是需要列表拖拽了,而我们选择了ListView,也是因为使用L ...
- Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例
Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表, ...
- Android高级控件(四)——VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷
Android高级控件(四)--VideoView 实现引导页播放视频欢迎效果,超级简单却十分的炫酷 是不是感觉QQ空间什么的每次新版本更新那炫炫的引导页就特别的激动,哈哈,其实他实现起来真的很简单很 ...
- Android高级控件(三)—— 使用Google ZXing实现二维码的扫描和生成相关功能体系
Android高级控件(三)-- 使用Google ZXing实现二维码的扫描和生成相关功能体系 摘要 现在的二维码可谓是烂大街了,到处都是二维码,什么都是二维码,扫一扫似乎已经流行到习以为常了,今天 ...
- Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现
Android高级控件(二)--SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现 写这个的原因呢,也是因为项目中用到了gif动画,虽然网上有很多的架包可以实现,不过我们还 ...
- Android高级控件(一)——ListView绑定CheckBox实现全选,增加和删除等功能
Android高级控件(一)--ListView绑定CheckBox实现全选,增加和删除等功能 这个控件还是挺复杂的,也是项目中应该算是比较常用的了,所以写了一个小Demo来讲讲,主要是自定义adap ...
随机推荐
- Linux epoll源码--
Linux系统运行源码剖析-epoll代码注释 理解了中断.等待队列.调度,你就能懂Linux的80%. --老子 转发的话,请注明出处哦:http://www.cnblogs.com/stoneha ...
- TCHAR字符串查找&反向查找字符串
C++支持两种字符串,即常规的ANSI编码("字符串")和Unicode编码(L"字符串"),相应的就有两套字符串处理函数,比如:strlen和wcslen,分 ...
- 关于css选择器中有小数点的标签获取
需求说明 因为项目中章节配置的时候有小数点,1,1.1,1.2,1.11的标题,这个时候每一行标题的id,class设置成标题号是独一无二的标记.但是,直接用js获取是获取不到的,例如$('#3.22 ...
- Linux下mysql的常用操作
Linux下mysql的常用操作: 显示数据库 show databases; 选择数据库 use 数据库名; 显示数据库中的表 show tables; 显示数据表的结构 describe 表名; ...
- 【Python】 更棒的Excel操作模块xlwings
[xlwings] 说到Python操作Excel,有好多模块都可以支持这个工作.比如最底层的win32模块不仅可以操作Excel,还可以操作其他一众windows的软件. 其他的比较熟悉的有xlrd ...
- 关于HTML使用ComDlg ActiveX 无法弹出相应对话框的问题1
最近发现,开发的Web应用在客户的某些IE(8,9,11)中弹出不了Windows的字体对话框. 通过 F12 跟踪,错误代码是“-2146827850”,错误信息是“ 对象不支持ShowFont属性 ...
- 使用ADO.NET查询和访问数据库
使用ADO.NET查询和访问数据库步骤 使用ADO.NET查询和访问数据库 连接数据库操作: 1. 定义连接字符串: String connString = "Data Sour ...
- CentOS7搭建solr7.2
solr介绍 一.Solr它是一种开放源码的.基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中. 二.Solr 提供了层面搜索(就是统计).命中醒目显示并且支持多种输出格式( ...
- 集大1513 & 1514班 软件工程第二次作业评分与点评
谢谢按时完成作业的同学. 请大家在今后的作业中多思考,认真完成并注意作业的原创性. 学号 作业标题 作业地址 提交日期 分数 201521121087 微信APP简要分析 http://www.cnb ...
- C语言第三次作业--嵌套循环
一.PTA实验作业 题目1:硬币数 1. 本题PTA提交列表 2. 设计思路 步骤一:定义整型变量fen5,fen2,fen1,表示1分2分和5分,零钱数额x,总硬币数total,换法count 步骤 ...