[转]Android_气泡效果
今天先看一个气泡窗口,先看一下效果图和目录结构,然后再上代码

通过第一幅图,我们可以看到一个气泡窗口,这个窗口的结构是里面有2个TextView和1个气泡的背景,这个2个TextView放在了overlay_pop.xml文件中,气泡窗口是这个layout的背景,overlay_pop.xml的代码如下:
- <?xml version="1.0" encoding="UTF-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:background="@drawable/pub_pop_bg4"
- android:paddingLeft="10dp"
- android:paddingRight="10dp"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content" >
- <TextView android:id="@+id/bubble_text"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:textSize="18dp"
- android:textColor="#000" />
- <!-- 我知道了 -->
- <TextView android:id="@+id/bubble_btn"
- android:gravity="right"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_below="@id/bubble_text"
- android:textSize="20dp"
- android:textColorHighlight="#2151E0"
- android:text=""
- android:textColor="#1A75B9" />
- </RelativeLayout>
- 这是实现功能的全部代码:
- public class TestBubbleActivity extends Activity {
- /** 全局屏幕的高和宽 */
- private static int SCREEN_WIDTH = 0 ;
- private static int SCREEN_HEIGHT = 0;
- /**气泡显示的详细内容*/
- private TextView tvBubContent = null;
- /**显示 我知道了 的提示*/
- private TextView tvKnow = null;
- /**气泡view 里面包含2个TextView*/
- private View bubbleView = null;
- /**气泡dialog*/
- private Dialog bubbleAlert = null;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- getDimension();
- bubbleView = getLayoutInflater().inflate(R.layout.overlay_pop, null);
- tvKnow = (TextView)bubbleView.findViewById(R.id.bubble_btn);
- tvKnow.setText(Html.fromHtml("<u>"+"我知道了"+"</u>"));
- tvBubContent = (TextView)bubbleView.findViewById(R.id.bubble_text);
- tvBubContent.setText("上次程序异常退出,正在传输历史数据...");
- tvKnow.setOnClickListener(new View.OnClickListener(){
- @Override
- public void onClick(View v) {
- bubbleAlert.cancel();
- }
- });
- int tmpWidth = SCREEN_WIDTH/5*3;
- int tmpHeight =SCREEN_HEIGHT/8;
- //设置TextView宽度
- tvKnow.setMinWidth(tmpWidth);
- tvBubContent.setMaxWidth(tmpWidth);
- //以指定的样式初始化dialog
- bubbleAlert = new Dialog(this,R.style.bubble_dialog);
- Window win = bubbleAlert.getWindow();//获取所在window
- LayoutParams params = win.getAttributes();//获取LayoutParams
- params.x = -(SCREEN_WIDTH/8);//设置x坐标
- params.y = -tmpHeight;//设置y坐标
- params.width = tmpWidth;
- win.setAttributes(params);//设置生效
- bubbleAlert.setCancelable(false);
- bubbleAlert.setContentView(bubbleView);
- bubbleAlert.show();
- }
- /**
- * 获取屏幕尺寸
- */
- private void getDimension(){
- /** 获取屏幕的宽和高 */
- DisplayMetrics dm = new DisplayMetrics();
- getWindowManager().getDefaultDisplay().getMetrics(dm);
- SCREEN_WIDTH = dm.widthPixels;
- SCREEN_HEIGHT = dm.heightPixels;
- }
- }
[转]Android_气泡效果的更多相关文章
- 不用图片,纯Css3实现超酷的类似iphone的玻璃气泡效果
最近在一个私活做手机项目时候,需要实现一个类似ios 6中短信那样的气泡效果. 这里分享下实现心得,希望能给大家一点启发. 首先分析下iphone的气泡效果有一下特点 1. 四面圆角 2. 界面上向下 ...
- HTML5实现微信聊天气泡效果
最近做一个HybridApp,前端有一个群聊的功能,于是就想模仿微信的聊天界面,先看效果图: HTML代码: <!DOCTYPE html> <html lang="en& ...
- canvas实现酷炫气泡效果
canvas实现动画主要是靠设置定时器(setinterval())和定时清除画布里的元素实现,canvas动画上手很简单,今天可以自己动手来实现一个酷炫气泡效果. 气泡炸裂效果(类似水面波纹) 代码 ...
- Android超简单气泡效果
阿里P7移动互联网架构师进阶视频(每日更新中)免费学习请点击:https://space.bilibili.com/474380680最近有用到水下气泡上升效果,因此在网上查了一下资料,结果还真找到了 ...
- Android实现三角形气泡效果方式汇总
在开发过程中,我们可能会经常遇到这样的需求样式: 这张图是截取京东消息通知的弹出框,我们可以看到右上方有个三角形的气泡效果,这只是其中一种,三角形的方向还可以是上.下.左.右. 通过截图可以发现,气泡 ...
- CSS3实现气泡效果
首先定义一个 <p class="speech"></p> 先给外层的容器添加样式: p.speech { position: relative; widt ...
- CSS3效果:实现气泡效果
首先定义一个 <p class="speech"></p> 先给外层的容器添加样式: p.speech { position: relative; widt ...
- css3实现气泡效果的聊天框
因为CSS3尚未形成标准,所以现行的浏览器对于css3支持不太一致,某些特性需要加上浏览器前缀 css属性的浏览器前缀 前缀 渲染引擎 使用该引擎的浏览器 -khtml- KHTML Konquero ...
- css实现聊天气泡效果
--------------------------------------- css功能强大,能实现很多炫 酷的效果,今天给大家分享 用css3绘制聊天气泡的方法: -------------- ...
随机推荐
- HTTP 错误 404.2 - Not Found
前几天刚安装Windows Server 2008 r2 sp1 遇到问题之后,昨天我又遇到一个问题(但我不害怕有问题),提示: HTTP 错误 404.2 - Not Found由于 Web 服务器 ...
- Failed to start component [StandardEngine[Catalina].StandardHost[localhost....
今天我用了近一天的时间研究一个错误,早上写代码是遇到一个 错误严重错误代码如下: 严重: ContainerBase.addChild: start: org.apache.catalina.Life ...
- python函数应用
函数 定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编 ...
- C#数组的排序(正序逆序)
C#数组的排序(正序逆序) 这种排序 超级简单的 ! using System; using System.Collections.Generic; using System.Linq; using ...
- 《JAVA与模式》之策略模式
<JAVA与模式>之策略模式 在阎宏博士的<JAVA与模式>一书中开头是这样描述策略(Strategy)模式的: 策略模式属于对象的行为模式.其用意是针对一组算法,将每一个算法 ...
- 安卓开发之json解析
1.从网页获取json返回字符串 public class ReadNet extends AsyncTask<URL, Integer, String> { @Override ...
- crontab执行shell脚本
*/5 * * * * cd /data/**/ && ./*.sh * * * * * /bin/sh /home/*.sh
- (1)创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。 编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速 度设置为100,载重量设置为100;另一个能为对象的所有属性赋值; (2)创建主类: 在主类中创建两个机动车对象。
package a; public class Jidongche { private String chepaihao; private int chesu; private double zaiz ...
- 大神写的一个纯CSS圆角框,膜拜!(支持IE9一下的低版本)
留着提醒自己,底层才是最重要的,不要一直傻瓜的编程下去! <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN&q ...
- ARM家族大检阅
首先列举下几个名称: 6410 2440 210 A8 ARM9 ARM11 ARMv7 ARMv6 进行分类: 1.芯片名称: 2440 6410 210 2.ARM核: A8 ARM9 ARM11 ...