- 浏览: 51648 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
endual:
...
判断是否有网络可用及获取联网方式 -
endual:
多谢,看来是被你说到核心上了,有人提出,在oncreate中实 ...
android.view.WindowManager$BadTokenException: Unable to add window错误 -
alexlikeask:
拜读了,谢谢!
android有效解决加载大图片内存溢出的问题
单独将<merge />标签做个介绍,是因为它在优化UI结构时起到很重要的作用。目的是通过删减多余或者额外的层级,从而优化整个Android Layout的结构。 将通过一个例子来了解这个标签实际所产生的作用,这样可以更直观的了解<merge/>的用法。 建立一个简单的Layout,其中包含两个Views元素:ImageView和TextView 默认状态下我们将这两个元素放在FrameLayout中。其效果是在主视图中全屏显示一张图片,之后将标题显示在图片上,并位于视图的下方。以下是xml代码: <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" <ImageView android:scaleType="center" <TextView android:padding="12dip" android:background="#AA000000" android:text="Golden Gate" /> </FrameLayout>应用上边的Layout运行的视图为: 启动 tools> hierarchyviewer.bat工具查看当前UI结构视图: 我们可以很明显的看到由红色线框所包含的结构出现了两个framelayout节点,很明显这两个完全意义相同的节点造成了资源浪费(这里可以提醒大家在开发工程中可以习惯性的通过hierarchyViewer查看当前UI资源的分配情况),那么如何才能解决这种问题呢(就当前例子是如何去掉多余的frameLayout节点)?这时候就要用到<merge />标签来处理类似的问题了。我们将上边xml代码中的framLayout替换成merge: <merge xmlns:android="http://schemas.android.com/apk/res/android"> <ImageView android:scaleType="center" <TextView android:padding="12dip" android:background="#AA000000" android:text="Golden Gate" /> </merge>运行程序后在Emulator中显示的效果是一样的,可是通过hierarchyviewer查看的UI结构是有变化的,当初多余的FrameLayout节点被合并在一起了,或者可以理解为将merge标签中的子集直接加到Activity的FrameLayout跟节点下(这里需要提醒大家注意:所有的Activity视图的根节点都是frameLayout)。如果你所创建的Layout并不是用framLayout作为根节点(而是应用LinerLayout等定义root标签),就不能应用上边的例子通过merge来优化UI结构。 除了上边的例子外,meger还有另外一个用法 当应用Include或者ViewStub标签从外部导入xml结构时,可以将被导入的xml用merge作为根节点表示,这样当被嵌入父级结构中后可以很好的将它所包含的子集融合到父级结构中,而不会出现冗余的节点。 另外有两点需要特别注意: <merge />只可以作为xml layout的根节点。
android:layout_width="fill_parent"
android:layout_height="fill_parent">
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/golden_gate" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_gravity="center_horizontal|bottom"
android:textColor="#ffffffff"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/golden_gate" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="20dip"
android:layout_gravity="center_horizontal|bottom"
android:textColor="#ffffffff"
当需要扩充的xml layout本身是由merge作为根节点的话,需要将被导入的xml layout置于 viewGroup中,同时需要设置attachToRoot为True。(更多说明请参见inflate()文档)
发表评论
-
Intent的Flags属性的作用
2011-08-28 17:18 1146Intent intent = new Intent(R ... -
比较好的urlconnection实现文件上传
2011-08-22 14:42 0import java.io.BufferedReade ... -
用Activity实现定制化的Dialog
2011-08-02 12:30 8401、在Activity中使用该视图: setContentV ... -
定义Activity跳转动画效果和获取sdk版本
2011-08-01 16:05 1129Intent intent = new Intent(t ... -
刘阳的总结
2011-07-29 18:20 0说明: 附件是word文档 作者:刘阳 QQ:406 ... -
至上传图片,不带参数
2011-07-25 12:18 0只上传图片等的方法: public static ... -
监听音量键(转载)
2011-07-23 19:24 1025监听音量键 @Override public ... -
Listview显示网络图片
2011-07-19 18:26 5ViewCache 类的作用只是为了方便把ImagView ... -
创建一个简单的widget(转载自mars)
2011-07-18 17:16 8871 、创建一个AppWidgetProvider ... -
菜单的简单入门
2011-07-18 16:17 838public class WidgetActivity ... -
设置控件在整个页面的位置
2011-07-17 15:32 720改变UI中view的位置,用绝对布局比较方便。 imp ... -
创建菜单及处理点击事件
2011-07-17 11:42 812创建菜单,并在点击的某个菜单的时候跟菜单项id去处理逻辑 ... -
android 内嵌字体样式
2011-07-12 10:41 1096在Android中我们的应用可以灵活的内嵌自己的字体文件,实现 ... -
使用Pull解析器解析 xml
2011-07-12 09:52 853public void test1() throws Xm ... -
小控件的使用
2011-07-08 01:12 5841、当点击Menu键时,如果希望弹出菜单,则希望重写的方法如下 ... -
获取屏幕的分辨率
2011-07-03 23:46 764DisplayMetrics display = n ... -
android有效解决加载大图片内存溢出的问题
2011-07-03 22:20 1693尽量不要使用setImageBitma ... -
关于android:layout_x 与 android:layout_height
2011-07-03 19:47 1701关于 android:layout_x="0p ... -
关于getSystemService
2011-07-03 19:34 885getSystemService是Android很重要的一 ... -
关于在通知显示通知
2011-07-03 19:25 640@Override public void o ...
相关推荐
"Android-auto-merge-language"工具正是为了解决这一问题而设计的,它是一个自动化工具,能够有效地管理和合并项目的多语言资源,尤其是strings.xml文件中的文案。 这个工具名为"auto-merge-language",它的主要...
WinMerge是一款在Windows操作系统上广泛使用的开源文件和文件夹比较工具。它的主要功能是帮助用户识别两个或多个文件之间的差异,以及同步和合并这些文件。WinMerge-2.12.4-Setup.exe 是该软件的安装程序,通过运行...
npm-merge-driver安装 自动合并package-lock.json冲突的软件包。 很大程度上基于 ,在软件包安装时进行自动设置,并且只有一个小的依赖项来进行ci检查。 用生成的目录 安装 安装运行 npm i --save-dev npm-...
yolo算法-道路破损-缺陷数据集-18514张图像带标签-坑洼merge_data-qffrm.zip;yolo算法-道路破损-缺陷数据集-18514张图像带标签-坑洼merge_data-qffrm.zip;yolo算法-道路破损-缺陷数据集-18514张图像带标签-坑洼...
文件比较,代码比较工具.程序员的有用工具,比较2个文本文件的不同,多种源文件存储格式,WinMerge-2.6.8官方下载.
WinMerge-2.16.31-x64-Setup安装包
WinMerge是一款运行于Windows系统下的免费开源的文件比较/合并工具,使用它可以非常方便地比较多个文档内容甚至是文件夹与文件夹之间的文件差异。适合程序员或者经常需要撰写文稿的朋友使用。
WinMerge是一款广泛使用的开源文件和目录比较工具,尤其在IT行业内深受程序员和系统管理员的喜爱。它的主要功能是帮助用户识别两个或多个文件或文件夹之间的差异,并提供了方便的合并功能,使得版本控制和代码同步变...
WinMerge的使用方法相对简单。用户可以选择两个文件或文件夹进行比较,软件将展示它们的差异,通常以不同颜色高亮显示。不仅如此,WinMerge还提供了自动合并功能,可以一键解决大部分冲突,极大地提升了工作效率。...
2. **磁盘访问优化方法**:为了提高数据访问性能,通常会采用各种优化策略,如预读取(预测并加载未来可能需要的数据)、缓冲技术(使用内存作为临时存储以减少磁盘访问)、磁盘调度算法(如最短寻道时间优先SSTF、...
WinMerge-2.16.8-x64-Setup.exe
本篇文章将详细介绍`merge`标签的使用方法及其优势。 `merge`标签最初被引入是为了减少视图层次,这是因为在Android系统中,每个视图层级都会带来额外的绘制开销。当我们在一个布局文件中嵌套多个视图时,这些层级...
WinMerge-2503-Setup.exe
合并工具-WinMerge-2.4.10-Setup.exe
WinMerge-2.6.2-Setup
js js_leetcode题解之23-merge-k-sorted-lists.js
js js_leetcode题解之21-merge-two-sorted-lists.js
npm install --save-dev webpack-merge-and-include-globally 用法 假设您想使诸如jquery , moment (包括3种语言)和toastr在全球范围内可用,而您正在努力通过webpack使它们成为全局库,或者只是因为require()...
c语言入门 C语言_leetcode题解之21-merge-two-sorted-lists.c