2013年7月9日星期二

Bootstrap Popover 隐藏的Javasript方法 - Justany_WhiteSnow

本邮件内容由第三方提供,如果您不想继续收到该邮件,可 点此退订
Bootstrap Popover 隐藏的Javasript方法 - Justany_WhiteSnow  阅读原文»

Bootstrap Popover是Bootstrap的弹出提示控件。我们可以通过data属性或者Javascript来调用该控件。data属性调用定制性较差这里就不细说了,我们讲一下Javascript来调用。

初始化

$().popover(options)

对于jQuery选择器选到的元素调用jQuery.fn.popover(options)完成初始化,options是一个对象可以包含以下属性:

名称类型默认值描述
animationbooleantrue是否开启CSS动画
htmlbooleanfalse是否允许内容为HTML代码,为false则将代码以文本方式显示
placementstring | function'right'弹出提示相对于被选中元素的位置,可以使top | bottom | right | left 四个方向
selectorstringfalse如果有selector,则弹出提示将是该特殊元素
triggerstring'click'弹出提示在何时出现 - click | hover | focus | manual
titlestring | function''标题
contentstring | function''提示内容
delaynumber | object0

延时显示/隐藏时间

对象结构为 delay: { show: 500, hide: 100 }

containerstring | falsefalse

将提示框放在特定的容器里

基本方法

.popover('show')

显示提示。

.popover('hide')

隐藏提示。

.popover('toggle')

显示/隐藏提示。

更多需求

一般这些方法可以满足要求。

  • 但是如果我们想对弹出提示写入HTML,并对里面的元素进行实践绑定,可能就出现问题了,因为文档没有告诉你怎么获得该弹出提示对象。
  • 或者,如果我不想让该弹出提示弹出时候,除了销毁,我们也没有更好的办法,可是销毁后,想再次使用只能再次初始化……
  • 又或者……

实际上Bootstrap有些隐藏的方法能满足我们的需求。

注:实际上很多方法可以使用类似于.popover('xxx')的方法调用,但为了统一,我们推荐用下面的方法调用。

获取Popover对象

实际上,弹出提示是由内建的Popover对象管理的,jQuery.fn.popover方法只是调用Popover对象中的方法而已。所以首要是取出Popover对象供我们使用,而这一对象又在该元素的jQuery缓存中,我们可以这样取出:

$().data('popover');

例如:

var popoverObj = $('#element').data('popover');

然后我们就可以通过该对象的方法来完成我们想做的东西。

获取弹出提示对象

Popover.tip();

我们可以使用该方法返回jQuery包装后的弹出提示对象,然后进行事件绑定,例如:

popoverObj.tip().on('click', '#someElement', function(evt){
//do something...
})

使弹出提示有效或无效

利用Popover.enable() 和 Popover.disable() 方法可以很容易使弹出框生效或无效,而不是销毁他。

当然我们也可以用Popover.toggleEnabled() 方法来切换生效和无效状态。


本文链接:http://www.cnblogs.com/justany/p/3181128.html,转载请注明。

【Android】Bitmap加载图片错误 java.lang.OutOfMemoryError: bitmap size exceeds VM budget - Ray-Ray  阅读原文»

今天测试程序的时候出现下面的错误日志信息,程序当场挂掉

07-09 14:11:25.434: W/System.err(4890): java.lang.OutOfMemoryError: bitmap size exceeds VM budget
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.nativeDecodeStream(Native Method)
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:511)
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:325)
07-09 14:11:25.435: W/System.err(4890): at android.graphics.BitmapFactory.decodeFile(BitmapFactory.java:350)

使用Bitmap加载图片的方法是这样的

     vipAvatar = (ImageView) findViewById(R.id.vip_avatar);
File file
= new File(Environment.getExternalStorageDirectory()
+ IMAGE_FILE_NAME);
if (file.exists()) {
Bitmap bitmap
= BitmapFactory.decodeFile(Environment
.getExternalStorageDirectory() + IMAGE_FILE_NAME);
Drawable drawable = new
BitmapDrawable(bitmap);
vipAvatar.setImageDrawable(drawable);

}

在使用BitmapFactory.decodeFile的时候出错了,查找原因

android系统限制,只给图片分配8兆的内存,超过就崩,你图片几十KB,可能是压缩格式的,转换成bitmap就是本来的大小。

增加VM的设置不太现实,如果是在模拟器上没问题,但是考虑到真机使用,问题还是要解决的。

这里使用了一种方法,上述情况没有出现,方法是

在退出Activity时,将bitmap回收

  @Override
protected void onDestroy() {
if (bitmap != null && !bitmap.isRecycled())
bitmap.recycle();
super.onDestroy();
}

//////////////////////////////////////////////

原创声明 转载请注明

本文出自 Ray-Ray的博客

文章地址 http://www.cnblogs.com/rayray/p/3180017.html

感谢大家的推荐和收藏

你的支持! 我们的动力!


本文链接:http://www.cnblogs.com/rayray/p/3180017.html,转载请注明。

阅读更多内容

没有评论:

发表评论