导航:首页 > 操作系统 > androidui详解

androidui详解

发布时间:2023-06-11 13:03:53

⑴ 【android】UI(二)Android常用的基础布局容器

Android 的UI 可以分为两类,一类叫做ViewGroup容器,一类叫做View视图

View视图:(TextView,Button,ImageView)都是常用常见的视图.

ViewGroup容器:内部可以承载、放置、添加View视图

线性布局就是 从左到右 从上到下 顺序排列 的一种布局。下面讲一讲LinearLayout的基础属性。

相对布局在摆放子视图位置时,按照 指定的参考系 来摆放子视图的位置, 默认以屏幕左上角(0,0)位置 作为 参考系 摆放位置

使用layout_below使得后面一个组件位于前面一个组件的下方

配合layout_toRightOf使得后面一个组件位于前面一个组件的右方

组件的默认位置都是左上角,组件之间可以重叠。像千层饼一样,一层压着一层 可以设置上下左右的对齐、水平垂直居中、设置方式与线性布局相似

参考: 2021Android从零入门到实战(Kotlin版)

⑵ Android UI设计的基本元素有哪些

移动端的App界面,不论是iOS还是Android ,一般都由四个元素组成,分别是:状态栏(status bar)、导航栏(navigation)、主菜单栏(submenu)、内容区域(content)。

状态栏:主要用于显示信号、运营商、电量等手机状态的区域;
导航栏:主要显示当前界面的名称,包含相应的功能或者页面间的跳转按钮;
主菜单栏:类似于页面的主菜单,提供整个应用的分类内容的快速跳转;
内容区域:展示应用提供的相应内容;

需要注意的一点就是,由于Android在4.0之后移除了实体键而使用屏幕下方的虚拟键,所以,Android将iOS中的主菜单从下方移动到了上方,从而避免误操作虚拟键。

说到这里,就不得不说,虽然android和iOS都是移动端的操作系统,但是他们在UI设计还是存在很大的差异性。这是为什么呢? 其实这基本上都是因为iOS的闭源导致的,由于它的商业化,导致很多设计被申请了专利,Android在很多地方都必须有所不同,说的最多的就是iOS的弹性滚动,其实Android的ScrollView要实现这样的效果,只需要修改一个参数的值即可,但是由于这个效果iOS申请的专利,所以Android就无法使用了。

⑶ Android UI | View 的绘制流程详解

上一篇文章讲解了,从setContentView方法到了解View是如何绘制的: 传送门
在这篇博客讲述了, 在ViewRootImpl类中performTraversals方法中具体的绘制过程,其中里面就有 performMeasure()、performLayout()、performDraw() 三个方法的调用, 那么要了解View 的测量、布局、绘制,就分别跟这三个方法有关系。

先来看看performMeasure()方法的调用过程

先看performMeasure方法,这个方法有两个参数,都是通过getRootMeasureSpec()方法计算得到

这里有一个关键类MeasureSpec,在这里需要了解下这个类的原理。
这里要感谢 这位博主 ,他讲述的很清晰,我自己动手测算了,很容易理解。大概就是用一个数字通过高位记录Mode,地位记录size的方式,记录两个数据,都是通过一个掩码做位移运算得来。就是说这个变量(measureSpec)的值可以通过掩码分别得到测量mode 和 测量size。
继续查看performMeasure(childWidthMeasureSpec, childHeightMeasureSpec);方法:

这里mView是DecorView对象,那么他调用的实际上是View的measure方法,查询DecorView和FrameLayout都没有measure方法,所以他调用的是View的measure方法

DecorView.onMeasure()方法如下:

FrameLayout.onMeasure方法如下:(这个方法里面都很重要)

我们先看 , measureChildWithMargins 方法,

getChildMeasureSpec 方法内容如下:

那么假如我们写的布局根节点是LinearLayout,那么就会在执行到View.measure方法里面的onMeasure方法时,就会调用到LinearLayout.onMeasure方法,具体内容如下:

通过源码可以看到,还是会循环调用子View , 就这样循环递归的测量完最里面的一个view,这个过程中onMeasure方法可能会被多次执行。

还是从ViewRootImpl.performTraversals开始

这里跟measure 调用流程其实一样,DecorView和FrameLayout没有重写layout方法,所以调用的是View.layout方法,

由于当前对象是decorView,所以调用的是DecorView.onLayout方法:

FrameLayout.onLayout 方法如下:

继续查看 View.draw方法

在这个方法里面,所有重要的方法都在里面,onDraw、dispatchDraw 等等都在里面,我看了下这个方法里面都挺重要就没删减,也都能看得懂。

到此View的整个绘制流程就搞清楚了。

关于子view测量
1、不管父View是何模式,若子View有确切数值,则子View大小就是其本身大小,且mode是EXACTLY
2、若子View是match_parent,则模式与父View相同,且大小同父View(若父View是UNSPECIFIED,则子View大小为0)
3、若子View是wrap_content,则模式是AT_MOST,大小同父View,表示不可超过父View大小(若父View是UNSPECIFIED,则子View大小为0)

关于绘制流程
我们自定义的view,基本上只需要重写 onMeasure、onLayout、onDraw即可

⑷ Android UI规范是什么

从事UI设计行业的朋友都知道,每一张设计稿都是有规范尺寸的,并且IOS的和Android还不同,IOS UI设计规范为375*667 1x的尺寸,那么Android UI规范是什么呢,下面让我们一起来了解一下。

特别提示

本文尺寸均为1x。

⑸ 安卓手机里的系统UI是啥

这都是因为 Android 的开放性,Android 联盟对全世界开放了它的全部代码,并且有一个专业团队维护更新,这些代码不但是免费使用的,而且允许你在它原来的基础的上进行一些改动。因此,很多手机生产商便会根据自己的企业文化和市场需求,在原生Android上再做修改和开发,从而让自己的生产的手机在市场上和和其他品牌的手机有所区别。手机厂商基于Android 系统再定制的系统,一般情况下是不对外开放的源代码的,属于自有知识产权。

这些基于Android系统再定制的系统我一般称之为深度定制的Android用户界面(即User Interface),也就是业界常说的用户UI,简称UI。
市场上常见的几种 Android 定制化UI系统主要有 HTC 的 HTC Sense、摩托罗拉的 MotoBlur、索尼爱立信的 Nexus UI、三星 TouchWiz、魅族M9的定制UI、小米的MIUI 以及少数搭载 Android 原生系统的手机。

⑹ android的ui布局有哪些

布局(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)。

⑺ Android系统的ui是什么意思

UI及用户界面,就是所有你能看到的界面
activity
显示界面(就是UI)(显示的界面都是继承activity完成的)
service
服务(UI的后台)(后台运行的,可以理解为没有界面的activity)
Broadcast
Receiver
广播(做广播,通知时候用到)
Content
Provider
数据通信(数据之间通信,同个程序间数据,或者是不同程序间通信)

⑻ android ui是什么

谷歌手机平台Android开发的ui。

UI及用户界面,就是所有你能看到的界面
activity 显示界面(就是UI)(显示的界面都是继承activity完成的)
service 服务(UI的后台)(后台运行的,可以理解为没有界面的activity)
Broadcast Receiver 广播(做广播,通知时候用到)
Content Provider 数据通信(数据之间通信,同个程序间数据,或者是不同程序间通信)

阅读全文

与androidui详解相关的资料

热点内容
加密dns列表 浏览:986
股市操练大全八册pdf 浏览:120
c传递指针到python 浏览:163
手动添加引导的命令 浏览:54
740服务器小蓝条是做什么的 浏览:523
linux文件操作命令 浏览:127
安卓手机图片文件夹加锁 浏览:781
steam提示音在哪个文件夹 浏览:339
项目开发全程实录pdf 浏览:532
单片机reset 浏览:597
pdf怎么是英文 浏览:971
旗云2压缩机保险 浏览:374
做程序员压力大吗表情包 浏览:312
pdf下拉 浏览:373
php去掉小数后面的0 浏览:954
阿里备案买什么服务器 浏览:263
网络驱动下载到哪个文件夹 浏览:482
达内程序员培训西安 浏览:506
人保送车主惠app上怎么年检 浏览:605
android手机开机密码 浏览:482