问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

android 自定义ui控件有哪些1

发布网友 发布时间:2023-10-17 06:19

我来回答

1个回答

热心网友 时间:2024-11-19 17:41

  布局(Layout)的概念是针对Activity的,Activity就是布满整 个Android设备的窗口或者悬浮于其他窗口上的交互界面。在一个应用程序中通常由多个Activity构成,每个需要显示的Activity都需要在AndroidManifest.xml文件之中声明。

  通常情况下,开发人员可以使用两种方式来创建UI组件,一种方式是使用XML方式来配置UI组件的相关属性,然后装载这些UI组件,这也是最常用的方式。但是有些特殊情况下,需要动态生成UI组件,则需要使用第二种方式,完全使用Java代码来创建UI组件。

  XML布局文件是Android系统中定义的Layout的常用方式,所有布局文件必须包含在res/layout目录中,且必须符合Java的命名 规范。当在res/layout目录下新增了布局文件之后,R.java文件会自动收录该布局资源,Java代码可通过setContentView方法 在Activity中显示该Layout。

  setContentView(R.layout.<资源名称>);

在布局文件中可以指定UI组件的android:id属性,该属性的属性值代表该组件的唯一标识。通过Activity.findViewById()访问,并且findViewById()必须在setContentView加载xml文件之后使用,否则会抛出异常。
  
  findViewById(R.id.)

  Android应用的绝大部分UI组件都放在android.widget包及其子包、android.view包及其子包中,Android应用的 所有UI组件都继承了View类。View类还有一个重要的子类:ViewGroup,ViewGroup类是所有布局管理器的父类。

  ViewGroup容器控制其子组件的分布依赖于ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams两个内部类。

  ViewGroup.LayoutParams提供两个XML属性设定组件的大小。

  android:layout_height:指定该子组件的基本高度;

  android:layout_width:指定该子组件的基本宽度。

  这两个属性有三个基本值,这两个属性有三个特定的值:

  fill_parent:指定组件的高度、宽度与父容器组件的一样。

  match_parent:与fill_parent一样,Android2.2开始推荐使用。

  warp_content:内容包裹。

  ViewGroup.MarginLayoutParams用于控制子组件周围的页边距。

  android:layout_marginBottom(下边距);

  android:layout_marginLeft(左边距);

  android:layout_marginRight(右边距):

  layout_marginTop(上边距)

  对于View的尺寸,android提供了三种单位供选择使用:

  px:像素。

  dp:dpi,表示屏幕实际的像素。

  sp:与scale无关的像素,与dp类似。

  尺寸单位选择的技巧:如果设置长度、高度等属性时可以使用dp或sp,但是如果设置字体,需要使用px。如果使用dp或sp,系统会根据屏幕密度的变化进行转换。

  为了适应各种界面风格,Android提供了五种布局规范,利用这五种布局,基本上可以在设备上随心所欲的摆放任何UI组件,这五种布局分别是:

  FrameLayout(帧布局)。

  LinearLayout(线性布局)

  RelativeLayout(相对布局)。

  TableLayout(表格布局)。

  AbsoluteLayout(绝对布局)。

线性布局(LinearLayout)

  LinearLayout是最常用的布局方式,在XML文件中使用标记。它会将容器里的UI组件一个一个挨着排列起来。但是LinearLayout不会换行,当UI组件超出屏幕之后,则不会被显示出来。LinearLayout有两个重要的XML属性:androidgravity(对齐方 式);android:orientation(排列方式)。

  android:orientation(排列方式),设定了LinearLayout中包含的UI组件的排列方式,有两个选项vertical(竖向)、horizontal(横向,默认值)

  android:gravity(对齐方式),设定LinearLayout中包含UI组件的对齐方式,其选项很多,常用上(top)、下(bottom)、左(left)、右(right)。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
年终会活动策划方案 深度解析:第一财经回放,探索财经新风向 逆水寒手游庄园怎么邀请好友同住 逆水寒手游 逆水寒不同区可以一起组队吗? 逆水寒手游 逆水寒怎么进入好友世界? 逆水寒手游 逆水寒怎么去别人的庄园? 使用puppeteer实现将htmll转成pdf 内卷时代下的前端技术-使用JavaScript在浏览器中生成PDF文档 【译】将HTML转为PDF的几种实现方案 变形金刚08动画怎么样 android ui开源框架有哪些 Android开发中有没有类似Web前端的UI框架1 试述国际商法的渊源有哪些,并举例说明。2 C语言怎么输入bool型变量16 请问高吸水性树脂(简称高分子SAP),本身是可降解物质吗?和其他物质混合... 张姓男孩中间带令的辈猴年生人,求最后一字 男孩,张姓,仲字辈,取什么名字好, 张仲,,,,,, 推荐个好的MP4吧 彩虹六号该怎么玩?86 亲情号主号怎么踢人19 彩虹6号怎么样才会被打躺下而不死。就是可以救起来的那种状态。7 谁能指点下啊 浩方里的彩虹6号 如果是服务器怎么T人啊 ...5 在web浏览器中查看某一公司的主页,应知道哪个信息? 利用浏览器查看某web主页时 空调开了为什么会有臭味?急698 把这个&#4326;&#6980;&#43455;&#404...7 怎么把久违加入&#4326;&#6980;&#43455;&...4 fgo宫本武藏是限定吗1 fgo国服 宫本武藏奥义开眼是否牵绊要达到5才行? 试述国际商法的渊源有哪些,并举例说明。2 制订一份自立自强计划(急·······)32 怎样才能让自己成熟,自立自强8 如何自制自律自立自强?2 如何让自立自强 发刷宝短视频作者有收益吗?21 刷视频赚钱的,刷宝的推荐码填写方法?1 刷宝短视频能挣钱吗?844 怎样领取QQ币5 空调里吹出了臭味是怎么回事呢?117 六年级上册语文第三单元作文关于人与人之间互相关爱帮助的作文4...294 空调有臭气是为什么?16 学钢琴到国外读研,是去意大利好,还是去白俄罗斯好 推荐个好的MP4吧 大家推荐个好用的mp4 如何查看自己的身份证注册过几个22 求推荐~~~推荐一个MP4啊~~~ 单求最后一字,取一好听男孩名,父亲姓张,男孩取名为:张晨 ?... LOL20195月2日在维护什么?? 两个属兔的人在一起合适吗1987年的 性格合不合? 两个属兔的人在一起合适吗1999年的 性格合不合?