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

来源:互联网 发布:我是山姆 知乎 编辑:程序博客网 时间:2024/04/29 21:10

                                   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 DesignerWindows窗体设计器)或 Web Forms DesignerWeb窗体设计器)提供了基本实现。某个 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等则不能叫控件。

      

 

 

                                                 

原创粉丝点击