android dialog 模拟新浪、腾讯title弹框效果
http://blog.csdn.net/jj120522/article/details/7764183
首先我们看一下新浪微博的效果(其它就是一个dialog):
点击title前 点击title后
实现方式:
首先我们要自定义一个dialog
代码如下:
- /***
- * 自定义dialog
- *
- * @author jia
- *
- */
- public class MyDialog extends Dialog {
- private Window window = null;
- /***
- *
- * @param context
- * @param layoutResID
- * 配置文件
- * @param x
- * 显示的x坐标
- * @param y
- * 显示的y坐标
- * @param title
- * 集合
- */
- public MyDialog(final Context context, int layoutResID, int x, int y,
- final String[] title) {
- super(context, R.style.Transparent);
- window = this.getWindow();
- window.requestFeature(Window.FEATURE_NO_TITLE);
- setContentView(layoutResID);
- int width = this.getWindow().getWindowManager().getDefaultDisplay()
- .getWidth();
- windowDeploy(width / 2, 300, x, y);
- show();
- }
- /***
- * 设置窗口显示
- *
- * @param x
- * @param y
- * @param dialog_x
- * @param dialog_y
- */
- public void windowDeploy(int dialog_width, int dialog_height, int dialog_x,
- int dialog_y) {
- window.setBackgroundDrawableResource(android.R.color.transparent); // 设置对话框背景为透明
- WindowManager.LayoutParams wl = window.getAttributes();
- wl.width = dialog_width;
- wl.height = dialog_height;
- // wl.alpha = 0.8f;
- wl.gravity = Gravity.LEFT | Gravity.TOP; // 不设置的话默认是居中
- wl.x = dialog_x - dialog_width / 2; // 要显示的位置x坐标
- wl.y = dialog_y;
- window.setAttributes(wl);
- window.setWindowAnimations(R.style.dialogWindowAnim); // 设置窗口弹出动画
- setCanceledOnTouchOutside(true);
- }
- }
我们只需要在activity中调用即可:
代码片段:
- textView.setOnClickListener(new OnClickListener() {
- @Override
- public void onClick(View v) {
- int x_begin = textView.getLeft();
- int x_end = textView.getRight();
- int y_begin = textView.getTop();
- int y_end = textView.getBottom();// 这个是要显示位置的纵坐标
- // 获取最中间的x坐标
- int x = (x_begin + x_end) / 2;// 这个值也就是屏幕最中间的值,也可以下面这样
- // int x=getWindowManager().getDefaultDisplay().getWidth()/2;
- // int[] location = new int[2];
- // textView.getLocationInWindow(location); // 获取在当前窗口内的绝对坐标
- // textView.getLocationOnScreen(location);// 获取在整个屏幕内的绝对坐标
- myDialog = new MyDialog(DialogDemoActivity.this,
- R.layout.dialog, x, y_end, title);
- View view = LayoutInflater.from(DialogDemoActivity.this)
- .inflate(R.layout.dialog, null);
- listView = (ListView) myDialog.getWindow().findViewById(
- R.id.lv_dialog);
- listView.setAdapter(new ArrayAdapter<String>(
- DialogDemoActivity.this, R.layout.text, R.id.tv_text,
- title));
- listView.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> arg0, View arg1,
- int arg2, long arg3) {
- textView.setText(title[arg2]);
- myDialog.cancel();
- myDialog = null;
- }
- });
- }
- });
实现效果如下:
点击前 点击后 选择 选择后
实现起来也不难,有点要说明一下,这里我们用到了.9.png图片,这个图片会自动根据需要伸展,(重要的是不失真,这点很棒吧,详细介绍请点击连接).
android dialog 模拟新浪、腾讯title弹框效果的更多相关文章
- popupwindow 模拟新浪、腾讯title弹框效果
.jpg外部引用 原始文档 MainActivity.java外部引用 原始文档 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 ...
- 整合 新浪 腾讯 人人 qq空间 分享地址
function snsShare(snsId, title, content, image, url) { var snsUrl; // 新浪 腾讯 要申请appkey switch (snsId) ...
- android WebView将新浪天气为我所用 ------>仅供娱乐
新浪天气提供了一个网页 http://w.sina.com 浏览器访问: 这效果还可以了哦,直接用webview加载出来,效果也可以了哦,不过,这不是我要的.我不希望在我写的应用里到处铺满si ...
- Java 模拟新浪登录 2016
想学习一下网络爬虫.涉及到模拟登录,查阅了一番资料以后发现大部分都有点过时了,就使用前辈们给的经验,Firefox抓包调试,採用httpclient模拟了一下新浪登录. 不正确之处多多包括.须要的能够 ...
- jquery实现隐藏显示层动画效果、仿新浪字符动态输入、tab效果
已经有两年多没登陆csdn账号了,中间做了些旁的事,可是现在却还是回归程序,但改做前端了,虽然很多东西都已忘得差不多了,但还是应该摆正心态,慢慢来,在前端漫游,做一只快乐双鱼. 路是一步一步走出来的, ...
- 【多端应用开发系列1.1.1 —— Android:使用新浪API V2】服务器Json数据处理——Json数据概述
[前白] 一些基础的东西本系列中就不再详述了,争取尽量写些必不可少的技术要点. 由于本系列把Web Service 构建放到了第二部分,Android项目就采用新浪微博API v2作为服务器端. [原 ...
- 类似新浪 腾讯微博字数统计 控制js(区分中英文 符号)
<script> ; function Q(s) { return document.getElementById(s); } function checkWord(c) { len = ...
- HBuilder webApp开发(七)微信/QQ/新浪/腾讯微博分享
链接 https://blog.csdn.net/zhuming3834/article/details/51706256
- 接入新浪、腾讯微博和人人网的Android客户端实例 接入新浪、腾讯微博和人人网的Android客户端实例
做了个Android项目,需要接入新浪微博,实现时也顺带着研究了下腾讯微博和人人网的Android客户端接入,本文就跟大家分享下三者的Android客户端接入方法. 一.实例概述 说白了,接入微博就是 ...
随机推荐
- git查看某个文件的修改历史及具体修改内容
有时候在比对代码时,看到某些改动,但不清楚这个改动的作者和原因,也不知道对应的BUG号,也就是说无从查到这些改动的具体原因了- [注]:某个文件的改动是有限次的,而且每次代码修改的提交都会有commi ...
- 每天一个linux命令(30):cal 命令
cal命令可以用来显示公历(阳历)日历.公历是现在国际通用的历法,又称格列历,通称阳历.“阳历”又名“太阳历”,系以地球绕行太阳一周为一年,为西方各国所通用,故又名“西历”. 1.命令格式: cal ...
- 关于opacity透明度子元素继承现象的若干研究以及hack方法
[感想]信息时代的信息是有时效性的,今天是确确实实感受到了.互联网资料虽然丰富,但是质量不一,还有大量的跟风雷同,很多人都是随手拷贝过来,根本没有实践.以前端为例,这两年浏览器的迅猛发展,造成很多原有 ...
- DVR分布式路由
1. 背景 没有使用DVR的场景: 从图中可以明显看到东西向和南北向的流量会集中到网络节点,这会使网络节点成为瓶颈. 如果启用DVR,如下图: 对于东西向的流量, 流量会直接在计算节点之间传递. 对于 ...
- hdu1281 二分匹配
求重要的点.那就可以通过枚举来找:先做一次最大匹配,求出匹配数.然后逐一枚举这些点.如果匹配数改变,那就是重要点: #include<stdio.h> #include<string ...
- 【bzoj2819】 Nim
www.lydsy.com/JudgeOnline/problem.php?id=2819 (题目链接) 题意 动态树上路径异或和. Solution Nim取石子游戏的sg值就是每堆石子的异或和,所 ...
- sourceinsight安装记录
sourceinsight安装记录 此文章为本人使用sourceinsight一个星期之后的相关设置步骤记录和经验记录,以备以后查验,网上的相关资料都也较为完善,但是对于新手还是有一定困难的,所以在这 ...
- 批处理:echo的用法
批处理:echo的用法 若要用 echo 命令显示一条命令,可用下述语法: echo [message] 参数 ON|OFF 指定是否允许命令的回显.若要显示当前的 ECHO 的设置,可使用不带 ...
- 用css3制作旋转加载动画的几种方法
以WebKit为核心的浏览器,例如Safari和Chrome,对html5有着很好的支持,在移动平台中这两个浏览器对应的就是IOS和Android.最近在开发一个移动平台的web app,那么就有机会 ...
- svn代码回滚命令
代码回滚提交: 比如要把73回滚到68 svn merge -r 73:68 http://my.repository.com/my/project/trunk 然后commit就行了 svn com ...