仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 4921|回复: 20
打印 上一主题 下一主题

[学习教程] IOS编程之Android视图巨细丈量案例研讨仓酷云

[复制链接]
冷月葬花魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-18 11:30:22 | 显示全部楼层 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
以后一定会坚持多读些相关的书籍,在这里也要感谢一下“清源教育”的老师对我学习中极大的帮助,每次有不懂得问题,都及时得到了他们的回答。比来我的同事碰到了一个很风趣的成绩。上面这个十分复杂的结构会向我们展现一些关于Android丈量体系的风趣发明。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#0F0"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Thisissometext."/>
</FrameLayout>

预期的运转了局,应当显现带色彩背景的文本。但实践上,你基本就看不到背景ImageView:

<br>
成绩的本源就在于丈量。由于我们利用了色彩来取代了图片,以是ImageView很天然地以为它的宽和高都是零。Colors(大概ColorDrawables)并没有像图片那样具有本色意义上的巨细,而ImageView不会年夜于它的背景大概图片源的巨细。
成心思的是,我们能够想出良多办法来办理这个成绩。每一个办理办法都展现了丈量体系的某个新的方面。从直不雅的角度顺次懂得:


  • 将父结构FrameLayout设置为match_parent。如许,ImageView就能够晓得详细的巨细,以此充斥父视图。
  • 利用View取代ImageView。View会扩大并添补空间,而ImageView不会。
  • 利用RelativeLayout取代FrameLayout。绝对结构在丈量子视图巨细时,会接纳分歧的体例。
  • 为TextView宽或高设置为match_parent。这是个很让人狐疑的办法。它之以是无效,是由于假如FrameLayout有一个或多个子视图利用了match_parent,会再做一次丈量。
了解而不是复杂地办理这个成绩,必要重复浏览FrameLayout.onMeasure()和ImageView.onMeasure()代码。面临如许的成绩,Android是开源项目这一现实让我感应十分乐意。
这个成绩的中心在于,仅仅展现色彩不该该利用ImageView,用一个带背景的View会加倍牢靠。
很明显,下面的结构没有甚么本色意义,人人一样平常城市给TextView设置背景。不外,这是一种申明成绩的复杂体例。

语法弄明白@interface@property这些工具总要知道是干嘛的怎么用基础库
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-5-3 17:14

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表