您的位置:首页 > 产品设计 > UI/UE

软件也要拼脸蛋,UI开发的点点滴滴

2016-04-16 10:15 323 查看

常用控件的使用

TextView

它主要用来显示一段文本

android:gravity:用来指定文字的对齐方式,可以用“|”来同时指定多个值

android:textSize:用来指定文字的大小

android:textColor:用来指定文字的颜色

Button

实现Button点击事件有三种方法

内部类实现

实现接口

在XML代码中使用OnClick属性

EditText

它允许用户在控件里输入和编辑内容,并可以在程序中对这些内容进行处理

android:hint:用来指定一段提示性文字

android:maxLines:指定了EditText的最大行数

ImageView

用于在界面上展示图片的一个控件

使用android:src属性给ImageView指定一张图片

ProgressBar

用于在界面显示一个进度条

Android控件的可见属性。 所有的 Android控件都具有这个属性, 可以通过android:visibility进行指定

visible 表示控件是可见的,这个值是默认值

invisible 表示控件不可见,但是它仍然占据着原来的位置和大小, 可以理解成控件变成透明状态了

gone 则表示控件不仅不可见,而且不再占用任何屏幕空间

通过 style 属性可以将它指定成不同的样式

android:max 属性给进度条设置一个最大值

AlertDialog

AlertDialog 可以在当前的界面弹出一个对话框,这个对话框是置顶于所有界面元素之上的,能够屏蔽掉其他控件的交互能力,因此一般 AlertDialog 都是用于提示一些非常重要的内容或者警告信息

首先通过 AlertDialog.Builder 创建出一个 AlertDialog 的实例

AlertDialog.Builder dialog = new AlertDialog.Builder(MainActivity.this);


setPositiveButton()方法为对话框设置确定按钮的点击事件

dialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});


调用 setNegativeButton()方法设置取消按钮的点击事件

dialog.setNegativeButton("Cancel", new DialogInterfaceOnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});


ProgressDialog

ProgressDialog 和 AlertDialog 有点类似,都可以在界面上弹出一个对话框,都能够屏蔽掉其他控件的交互能力。不同的是,ProgressDialog 会在对话框中显示一个进度条,一般是用于表示当前操作比较耗时,让用户耐心地等待。

如果在 setCancelable()中传入了 false,表示 ProgressDialog 是不能通过 Back键取消掉的,当数据加载完成后必须要调用 ProgressDialog 的dismiss()方法来关闭对话框,否则 ProgressDialog 将会一直存在。

详解四种布局

LinearLayout

LinearLayout 又称作线性布局,是一种非常常用的布局

android:orientation:指定LinearLayout控件的排列方向,默认为horizontal(水平)

如果 LinearLayout 的排列方向是 horizontal,内部的控件就绝对不能将

宽度指定为 match_parent,因为这样的话单独一个控件就会将整个水平方向占满,其他的控件就没有可放置的位置了。

android:layout_gravity:用于指定控件在布局中的对齐方式;当LinearLayout 的排列方向是 horizontal 时,只有垂直方向上的对齐方式才会生效

RelativeLayout

RelativeLayout 又称作相对布局,也是一种非常常用的布局

android:layout_above 属性可以让一个控件位于另一个控件的上方

android:layout_below 表示让一个控件位于另一个控件的下方

android:layout_toLeftOf 表示让一个控件位于另一个控件的左侧

android:layout_toRightOf 表示让一个控件位于另一个控件的右侧

android:layout_alignLeft 表示让一个控件的左边缘和另一个控件的左边缘对齐

android:layout_alignRight 表示让一个控件的右边缘和另一个控件的右边缘对齐

android:layout_alignTop 和 android:layout_alignBottom相同的原理

FrameLayout

这种布局没有任何的定位方式,所有的控件都会摆放在布局的左上角

TableLayout

TableLayout 允许我们使用表格的方式来排列控件,这种布局也不是很常用

在 TableLayout 中每加入一个 TableRow 就表示在表格中添加了一行

在 TableRow中每加入一个控件,就表示在该行中加入了一列

TableRow 中的控件是不能指定宽度的

android:inputType 属性的值指定为 textPassword,把 EditText 变为密码输入框

android:stretchColumns 属性:它允许将 TableLayout 中的某一列进行拉伸,以达到自动适应屏幕宽度的作用

创建自定义控件

所有的控件都是直接或间接继承自View的,所用的所有布局都是直接或间接继承自ViewGroup的

ViewGroup则是一种特殊的View,它可以包含很多的子View和子ViewGroup,是一个用于放置布局和控件的存储

引入布局

include可以引入布局

<include layout = "@layout/title"/>


创建自定义控件

引入布局的技巧解决了重复编写布局代码的问题,但是如果布局文件中有控件需要设置点击事件,就需要重复编写点击事件,这个问题可以通过创建自定义布局来解决。

首先新建TitleLayout继承LinearLayout

public class TitleLayout extends LinearLayout{}


添加自定义控件

<com.example.uicustomviews.TitleLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
></com.example.uicustomviews.TitleLayout>


为自定义控件添加点击事件

最常用和最难用的控件—ListView

ListView允许用户通过手指上下滑动的方式将屏幕外的数据滚动到屏幕内,同时屏幕上原有的数据会滚动到屏幕外

ListView的简单用法

数据无法直接传递到ListView的,需要借助适配器来完成

ArrayAdapter 是其中一个适配器实现类

ArrayAdapter的构造器需要依次传入当前上下文、ListView子项布局的id、以及适配器的数据。

最后需要调用ListView的setAdapter()方法,将构建好的适配器对象传递进去。

提升ListView的效率

getView()中收一个参数convertView,这个参数用于将之前加载好的布局进行缓存,以便之后可以重用。

View view;
if(convertView == null){
view = LayoutInflater.from(getContext)).inflate(resourceId,null);
} else {
view = convertView;
}


可以创建一个内部类ViewHolder,用于对控件的实例进行缓存。

ListView的点击事件

listView.setOnItemClickListener(new OnItemClickListener(){
@override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
Fruit fruit = fruitList.get(position);
Toast.makeText(Mainactivity.this,fruit.getName(),Toast.LENGTH_SH  ORT).show();
}
)};


单位和尺寸

dp是密度无关像素的意思,它在不同密度的屏幕中的显示比例将保持一致

sp是可伸缩像素的意思,它采用了和dp相同的设计理念,解决了文字大小的问题

在编写Android程序的时候,尽量将控件或布局的大小指定成match_parent或wrap_content,如果必须指定一个固定值,则使用dp来做单位,指定文字大小用sp作为单位。

编写界面的最佳实践

制作Nine-Patch图片

Nine-Patch:它是一种被特殊处理过的png图片,能够指定哪些区域可以被拉伸而哪些区域不可以。

Android sdk目录下tools文件夹,找到draw9patch.bat文件是用来制作Nine-Patch图片的
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: