使ViewStub 来提高UI的加载的性能

首先看下API中的ViewStub

根据的文档的说明,ViewStub是一种默认不可见的试图,它没有大小,所以不能被改变,也不能通过某些把viewstub添加到布局当中来,

不过我们可以使用inflate()来吧ViewStub中的试图增加进行,这样可以实现动态的添加试图,不必要每次在onCreate()的时候就加载布局,可以提高我们的性能。

Demo中的使用方法:

1:新建布局文件 设置<ViewStub>节点

2: 在Activity中进行按钮点击  viewStub = (ViewStub) findViewById(R.id.mystub);

3: View view = viewStub.inflate();  把ViewStub中的View增添进来

下面Demo源代码:

主Activity类:

[java] view plaincopy

  1. package com.jiangqq.viewstubdemo;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.view.View.OnClickListener;
  6. import android.view.ViewStub;
  7. import android.widget.Button;
  8. public class ViewStubActivity extends Activity {
  9. private Button btn;
  10. private ViewStub viewStub;
  11. @Override
  12. public void onCreate(Bundle savedInstanceState) {
  13. super.onCreate(savedInstanceState);
  14. setContentView(R.layout.main);
  15. btn = (Button) findViewById(R.id.btn);
  16. btn.setOnClickListener(new OnClickListener() {
  17. @Override
  18. public void onClick(View v) {
  19. viewStub = (ViewStub) findViewById(R.id.mystub);
  20. View view = viewStub.inflate();
  21. v.setEnabled(false);
  22. }
  23. });
  24. }
  25. }

布局文件:

main.xml:

[html] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"
  4. android:layout_height="fill_parent"
  5. android:orientation="vertical" >
  6. <Button
  7. android:id="@+id/btn"
  8. android:layout_width="wrap_content"
  9. android:layout_height="wrap_content"
  10. android:text="点击确定" />
  11. <ViewStub
  12. android:id="@+id/mystub"
  13. android:layout_width="wrap_content"
  14. android:layout_height="wrap_content"
  15. android:layout="@layout/demo_viewstub" >
  16. </ViewStub>
  17. </LinearLayout>

demo_viewstub.xml:

[html] view plaincopy

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@+id/layout"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:orientation="vertical" >
  7. <TextView
  8. android:id="@+id/tv"
  9. android:layout_width="wrap_content"
  10. android:layout_height="wrap_content"
  11. android:text="ViewStubDemo_Byjiangqq" />
  12. </LinearLayout>

[html] view plaincopy

[html] view plaincopy

效果截图:

时间: 2024-08-11 17:30:33

使ViewStub 来提高UI的加载的性能的相关文章

非UI线程加载图片

Processing Bitmaps Off the UI Thread 非UI线程加载图片 BitmapFactory.decode*一系列方法,在之前的高效加载大图的文章中讲到过. 如果图片的数据源是磁盘,或则网络(内存以外的其他地方),那么解析图片的方法不应该在UI线程中执行.这些数据加载任务所要花费的时间有许多不可控因素,(例如:磁盘读取速度,图片的大小,CPU的频率,等等)如果这些任务阻塞了UI线程,系统判定你的应用程序无响应,用户是有权关闭你的软件的,这样的用户体验非常不好. 这篇文

提高网站页面加载速度的方法

我们在访问一些网站时,总是感觉页面加载的速度不够快,这是什么原因导致的呢?作为网站的开发者又能做哪些优化,来提高页面的加载速度呢? 工具/原料 网页开发工具 方法/步骤 1 优化图像.图像能吸引访客的注意,但是每一张图片都需要从服务器下载到访客的电脑中,这无疑增加了页面的加载时间.因此,必须优化图像.优化方法包括适当减小图片尺寸,降低图片的颜色深度. 2 去掉不必要的插件.一些免费的插件能够增强网页的功能,但是如果添加了过多的插件,就会增加服务器的负担和页面加载时间.在构建页面时,去掉不必要的插

一步一步实现listview加载的性能优化

listview加载的核心是其adapter,本文针对listview加载的性能优化就是对adpter的优化,总共分四个层次: 0.最原始的加载 1.利用convertView 2.利用ViewHolder 3.实现局部刷新 [转载请保留本文地址:http://www.cnblogs.com/goagent/p/5158064.html]  〇.最原始的加载 这里是不经任何优化的adapter,为了看起来方便,把listview的数据直接在构造函数里传给adapter了,代码如下: 1 priv

【java】itoo项目实战之hibernate 懒加载优化性能

在做itoo 3.0 的时候,考评系统想要上线,就开始导入数据了,只导入学生2万条数据,但是导入的速度特别的慢,这个慢的原因是因为导入的时候进行了过多的IO操作.但是导入成功之后,查询学生的速度更加慢,因为底层用了hibernate的hql语句进行查询的,学习过hibernate的人都知道,如果hibernate不设置懒加载的话,只有是有关联的数据都会一次性全部都查询出来,我试了试,查询2万条数据,最深的级联查询是有5层,然后发出来的语句是460条,时间大概是10s.然后就考虑使用lazy进行优

Android ViewPager Fragment使用懒加载提升性能

?? Android ViewPager Fragment使用懒加载提升性能 Fragment在如今的Android开发中越来越普遍,但是当ViewPager结合Fragment时候,由于Android ViewPager内在的加载机制,导致一个比较严重的加载性能问题,具体来说,假设一个ViewPager中有n多个Fragment,那么ViewPager在初始化阶段将一次性的初始化FragmentPagerAdapter中的至少3个Fragment(如果Fragment多于3),创建和加载Fra

提高网站第一次加载速度

特别是在手机端访问,用户第一次打开网站,如果得到反馈的时间太久,用户很可能在页面完成加载之前就离开,不会再次访问.所以,网站.web App,提高首次访问的加载速度就显得特别重要了.第一次加载速度是用"首字节的时间"测量的,即从用户点击访问到从服务器返回第一个字节所用的时间,绝大多数情况下,真正的原因在于前端,PageSpeed YSlow和其他无数的工具和服务用来解决这些问题. 浏览器是如何加载页面的 解析域名à发起请求à下载响应à渲染页面 当浏览器要渲染页面的时候,如果页面中有CS

如何提高WordPress的加载速度

针对wordpress加载速度慢的原因: 1. 由于Wordpress系统默认使用谷歌字体,在国内谷歌域名被屏蔽,所以导致操作反应慢.对于很多商业主题默认使用了谷歌字体.谷歌ajax库.谷歌地图等谷歌服务,所以导致网站前台访问速度慢. 解决方法: 找到Wordpress这个文件 \wp-includes\script-loader.php,找到:fonts.googleapis.com,全部替换成:fonts.useso.com.Useso take over Google". 2.去除复杂冗余

iOS—UI —懒加载

懒加载——也称为 延迟加载, 即在需要的时候才加载(效率低,占用内存小).所谓懒加载,写的是其get方法. 注意: 如果懒加载的话,则一定要注意先判断是否已经有了,如果没有那么再进行实例化. 懒加载的好处: 1.不必将创建对象的代码全部卸载ViewDidload方法中,代码的可读性更强 2.每个空间的getter方法中分别负责各自的实例化处理,代码彼此之间的独立性强,低耦合性.

Esay ui数据加载等待提示

以视频上传为例: //视频上传    function uploadVedio(fileName){            load();//开始加载时弹出加载层        $.post('<%=path%>/misArticle/articleInfo/getVedioAddress.do?fileName='+fileName,function(result){            if(result.success){                 $('#videoUrl').