android基础知识(4) ----小常识

本文详细解释了Android中的单位dp和sp的区别与应用场景,并探讨了组件(Component)与控件(Control)之间的区别,帮助读者更好地理解Android开发的基础概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

android入门基础(4)

----单位与组件,控件

单位问题:

dp也就是dip。这个和sp基本类似。如果设置表示长度、高度等属性时可以使用dp 或sp。但如果设置字体,需要使用sp。dp是与密度无关,sp除了与密度无关外,还与scale无关。如果屏幕密度为160,这时dp和sp和px是一样的。1dp=1sp=1px,但如果使用px作单位,如果屏幕大小不变(假设还是3.2寸),而屏幕密度变成了320。那么原来TextView的宽度设成160px,在密度为320的3.2寸屏幕里看要比在密度为160的3.2寸屏幕上看短了一半。但如果设置成160dp或160sp的话。系统会自动将width属性值设置成320px的。也就是160 * 320 / 160。其中320 / 160可称为密度比例因子。也就是说,如果使用dp和sp,系统会根据屏幕密度的变化自动进行转换。

组件和控件的区别

控件就是具有用户界面的组件, 组件不需要显示任何信息或用户界面。

.NET 框架中,术语控件和组件为 .NET 赋予了专门的意义。Component 类为被用于设计层面的对象如 Windows Forms Designer Windows 窗体设计器)或 Web Forms Designer Web 窗体设计器)提供了基本实现。某个 Component 是任何可以被拽到某个窗体的任何东西。Component 类实现IComponentISite IContainer

控件是一个用用户界面的组件——能绘制东西并能与用户交互。Control 类还是所有托管窗口类的基类——窗体、按钮、栅格、面板、工具栏等等。Control 类是定义 WndProc ClientSize 以及所有标准窗口事件如 GotFocus Click 的地方。Web控件(System.Web.UI.Control)也是组件,不过从严格的意义上讲,它不是从 System.ComponentModel.Component 派生的。(对于 Web 控件,其名字空间为 System.Web.UIControl 本身实现 IComponent。)

1ComponentRun Time时不能呈现UI,而Control可以在Run Time时呈现UI(但是vs 2005里的asp.net中的SqlDataSourceControl,但是它不能呈现UI)。

2Component是贴在容器Container上的,而Control则是贴在Windows Form或者Web Form上的。

  举例来说,SqlCommand是个ComponentDataGrid则是一个Control

MFC里习惯称为控件,因为大家都继承自Control类;而在JavaJFC(AWT/Swing)领域则称为组件(Component)并且都是Component类的子类,没有Controller这一说法。所以及至web开发领域,我认为大家还是可以按照老习惯,.net的象楼上兄台这样区分,java的则称为UI组件,逻辑组件等等而无需冠以控件之名。
我们学校一位教授更有不同看法,他认为控件关键在于,只有象Button这类东西才能叫控件(在VBButtonCommand),而TextField等则不能叫控件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值