Android:UI界⾯设计基础知识总结(⼀)
⼤年初⼀,这⾥有我。
寒假过的很快,转眼间已经荒废了两周的学习时间,现在想来仍然是惭愧不已。但时间已经流逝,我能做的就是抓紧当下,真正地投⼊到学习,投⼊到Android的学习中去。
现在学习主要是跟着视频教程边看边学,现将学习到的零星知识点总结如下:
Android 系统中的所有 UI 类都是建⽴在 View 和 ViewGroup 两个类的基础之上的,所有 View 的⼦类称为 Widget,所有 ViewGroup 的⼦类称为 Layout。其中 ViewGroup 是 View 的⼦类。
View 是所有 UI 组件的基类,基本上所有的⾼级 UI 组件都是继承 View 类实现的,如 TextView(⽂本框)、Button、List、EditText(编辑框)、Checkbox 等。⼀个 View 在屏幕占据⼀块矩形区域,负责渲染这块矩形区域,也可以处理这块矩形区域发⽣的事件,并可以设置该区域是否可见以及获取焦点等。
ViewGroup 是容纳这些组件的容器,其本⾝也是从 View 中派⽣出来的,它继承于 Android.view.View,功能就是装载和管理下⼀层的 View 对象或 ViewGroup 对象,也就是说它是⼀个容纳其他元素的容器,负责对添加进来的 View 和 ViewGroup 进⾏管理和布局。
Android常⽤的UI组件:
⾸先有⼀些属性是通⽤的:
id=”@+id/name”创建⼀个id,系统会在R.java⽂件⾥⽣成对应的int型变量(R.java⽤来定义所有类型资源的索引)。引⽤时:”@id/name”orientation  ⽔平⽅向或垂直⽅向
margin:外边距
padding:内边距
gravity:位置管理
⼀、布局管理
SDK 定义了多种布局⽅式以⽅便⽤户设计 UI。各种布局⽅式均为 ViewGroup 类的⼦类。
主要学习的是两种最常⽤的布局,是线性布局(LinearLayout)和相对布局(RelativeLayout)。
1、线性布局(LinearLayout)
gravity与layout_gravity的区别
关于layput_margin和Padding属性:
LinearLayout ⼜称线性布局,该布局应该是 Android 视图设计中最经常使⽤的布局。该布局可以使放⼊其中的组件以⽔平⽅式或者垂直⽅式整齐排列,通过 android:orientation 属性指定具体的排列⽅式,
通过 weight 属性设置每个组件在布局中所占的⽐重。
其中weight属性需要特别注意:weight代表的是权值,但此权值的分配是指剩余的空间(未被元素使⽤的空间按照权值⽐例分配),需要理解掌握。
2、相对布局(RelativeLayout)
RelativeLayout ⼜称相对布局。从名称上可以看出,这种布局⽅式是以⼀种让组件以相对于容器或者相对于容器中的另⼀个组件的相对位置进⾏放置的布局⽅式。
⽗⼦之间:
兄弟之间:
设置⽂本框的最⼤⾏数(当然还有其他设置最⼤):android:maxLines="1"⼆、TextView(⽂本框)设置⽂本显⽰⽅式:
end表⽰显⽰不完省略号:android:ellipsize="end"
marquee表⽰显⽰不完播放:android:ellipsize="marquee"
再加上这样⼏⾏可以循环播放
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true"
添加图⽚,调整图⽚边距等
android:drawableRight="@drawable/name"//表⽰在⽂本右边添加图⽚
android:drawablePadding="5dp"
三、Button(按钮)
按钮学习的重点在改变按钮的样式和添加点击事件。
改变样式主要是将按钮改为圆⾓,更加美观。
可在drawable⽬录下新建xml⽂件修改。
<shape xmlns:android="schemas.android/apk/res/android"
android:shape="rectangle">
<solid
android:color="#FF9900"/>
<corners
android:radius="5dp"/>
</shape>
再在要设置的按钮添加背景属性,设置为此xml⽂件即可。
同样可以设置很多效果,⽐如未点击和点击的不同颜⾊区分。
<selector xmlns:android="schemas.android/apk/res/android">
<item android:state_pressed="true">
<shape>
<solid android:color="#CC7A00"/>
<corners android:radius="5dp"/>
</shape>
</item>
<item android:state_pressed="false">
<shape>
<solid android:color="#FF9900"/>
<corners android:radius="5dp"/>
</shape>
</item>
android学习教程
</selector>
再就是添加点击事件,为普通按钮添加单击事件。两种⽅式:
1、匿名内部类作为单击事件,这⾥添加内容为显⽰被点击的按钮内容。
//按钮3的点击事件
mBtn3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(ButtonActivity.this,"btn3我被点击了",Toast.LENGTH_SHORT).show();
}
});
2、通过onClick属性实现
①在Activity中编写⼀个包含View类型参数的⽅法。  public void myClick(View view){}
②将android:onClick属性指定为①内的⽅法名。   android:onClick="myClick"
扩展:ImageButton图⽚按钮
通过src属性指定
四、EditText(编辑框)
属性
android:hint="请输⼊⽤户名"  :输⼊框提⽰信息
android:inputType="number":规定输⼊格式。
android:inputType="none"//输⼊普通字符
android:inputType="text"//输⼊普通字符
android:inputType="textCapCharacters"//输⼊普通字符
android:inputType="textCapWords"//单词⾸字母⼤⼩
android:inputType="textCapSentences"//仅第⼀个字母⼤⼩
android:inputType="textAutoCorrect"//前两个⾃动完成
android:inputType="textAutoComplete"//前两个⾃动完成
android:inputType="textMultiLine"//多⾏输⼊
android:inputType="textImeMultiLine"//输⼊法多⾏(不⼀定⽀持)
android:inputType="textNoSuggestions"//不提⽰
android:inputType="textUri"//URI格式
android:inputType="textEmailAddress"//电⼦邮件地址格式
android:inputType="textEmailSubject"//邮件主题格式
android:inputType="textShortMessage"//短消息格式
android:inputType="textLongMessage"//长消息格式
android:inputType="textPersonName"//⼈名格式
android:inputType="textPostalAddress"//邮政格式
android:inputType="textPassword"//密码格式
android:inputType="textVisiblePassword"//密码可见格式
android:inputType="textWebEditText"//作为⽹页表单的⽂本格式
android:inputType="textFilter"//⽂本筛选格式
android:inputType="textPhonetic"//拼⾳输⼊格式
//数值类型
android:inputType="number"//数字格式
android:inputType="numberSigned"//有符号数字格式
android:inputType="numberDecimal"//可以带⼩数点的浮点格式
android:inputType="phone"//拨号键盘
android:inputType="datetime"//⽇期+时间格式
android:inputType="date"//⽇期键盘
android:inputType="time"//时间键盘
转⾃CSDN:原⽂链接:
同样也可在编辑框⾥添加图⽚等操作,android:drawableLeft="@drawable/name"  。(与android:drawableStart相同)
同理:android:drawableBottom,android:drawableRight(android:drawableEnd)
android:drawablePadding:内边距
android:lines:限制⾏数,超出时向上滚动。
getText():获取编辑框内容
五、RadioButton(单选框)
RadioGroup 为单项选择按钮组,其中可以包含多个 RadioButton,即单选按钮,它们共同为⽤户提供⼀种多选⼀的选择⽅式。在多个RadioButton 被同⼀个 RadioGroup 包含的情况下,多个 RadioButton 之间⾃动形成互斥关系,仅有⼀个可以被选择。
基本格式:
<RadioGroup>
  <RadioButton/>
  <RadioButton/>
  .....
</RadioGroup>
RadioGroup中也有orientation属性,即选择⽔平或竖直⽅向排列RadioButton。
RadioButton中的属性:
按钮名称:android:text="name"
表⽰被默认选中的选项:android:checked="true"
设置按钮形状:android:button="@null"(表⽰不设置)
可以⾃定义按钮选中时的样式:
同样在drawable⽬录下新建xml⽂件修改。
<selector xmlns:android="schemas.android/apk/res/android">
<item android:state_checked="true">
<shape>
<solid android:color="#CC7A00"/>
<corners android:radius="5dp"/>
</shape>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。