Android 入门三 UI界面

1. 话说 不是前端或者学设计的程序员大都美感较差,因为大都关注的是功能的实现,我觉得学点UI对于程序员以后找女朋友是一件很重要也很紧急的事儿。

2.那android里有哪些脸谱呢,因为有很多,我就不一一介绍了,谈一些常用的UI控件吧,

TextView  :这是个文本框,用layout_width,layout_height 设置这个相对于父布局的大小   有match_parent  沾满全部   wrap_content  当前空间大小所占的内容

EditView   :编辑框  , 用来输入内容的     android:hint 提示文本  maxLines="2" 输入内容过多时,最大显示行数 两行    审美的小细节 inputType 设置文本显示的种类 比如密码,邮箱之类的

Button   : 按钮   ,

ImageView :图片, src 指定图片路径

ProgressBar : 进度条    代码中使用 PregressBar 的 getProgress()获取进度条进度信息  setProgress(int) 设置进度信息

style="?android:attr/progressBarStyleHorizontal"

android:max="100"

设置进度条的样式  这个是 横长条的  默认是 圆圈。

AlertDialog :弹出对话框 , new  AlertDialog.Builder (Context) 然后设置 Title, Message,成功PositiveButton 失败 NegativeButton 内容  最后要show()一下  和Toast一样。别忘了 还要设置Cancelable(false); 无法通过返回键 来取消当前对话框

ProgressDialog :进度条对话框 , 这里的Cancelable(false)的话 结束之后一定要dismiss()一下 

这里有一些公共的属性  比如android:text  显示的文字  android:textSize 文字大小 android:textColor文字颜色等等

dp,sp 前者是与像素无关的单位  后者是描述像素无关的文字单位  因为考虑到设备屏幕大小以及像素的问题才出现了这些单位,好适配现在的只能手机。

3.几种布局格式

LinearLayout   :按照某一方向的顺序依次安排空间大小,就好像是学生按学号做座位一样, orientation="vertical"  水平  orientation=“horizontal”垂直

RelativeLayout : 先设定一个位置,这个空间位置可以依赖于父布局的空间进行 控制  居中gravity=“center”  靠左alignParentLeft 靠右.... 可以查看api的xml属性  给第一个设定id,之后的空间可以相对于 设定了id的空间进行位置的布局           android:width="0dp"  android:weight="1" 这样把宽度设为0之后可以更好的适配屏幕

TableLayout :表格布局 ,  layout_span="2" 合并2个单元格 <TableRow> </TableRow> 换行

4. 自定义控件

方法一: 先创建好控件的xml文件 ,在主xml中引入 <include layout="@layout/xxx"> 这样就可以把自己的空间布局引入进来了。

方法二 :      我们要创建一个控件类,初始化函数,将自己写的布局与控件类绑定,LayoutInflater.from(context).inflate(R.layout.xxx,this); 

然后我们定义一下 控件上的 点击回调事件,

最后在要展示的xml中引入<com.xxx.xxx.xxx    android:layout_...   ....   ...>就OK了

5.ListVeiw 这是经常要用到的一个控件  既然是控件 所以在代码中还是需要  findViewById() 你懂的, 接着这是用来展示一个数据量比较大的空间  所以需要一个帮手 就是ArrayAdapter 叫做适配器  用来适配列表中每一行的数据,这其实是一种设计模式了,观察者模式,简单的说 就是为一个会随时变化的事物设置一些观察者,而当事物发生变化时,就会被观察者感知 然后去告诉另外一个事物,依据这样的设计模式能够知道 这个观察者类 一定包含了 被通知事件的对象,这里的观察者是ArrayAdapter,它将ListView的对象包含进来,当data发生变化时 就通过notifyDataSetChanged()来通知ListView去进行显示,  但是可能你看代码的时候 会发现是这样的 listView.setAdapter(adapter)会有些绕,但android源码里setAdapter(Adapter) 经过了很多处理之后 ,将listView的对象注册到Adapter中了,如果细究可以查查资料

使用的时候还可以自定义自己的列表布局,在自己定义的Adapter类中将布局引入, 初始化构造方法,获取当前行布局xml的view,然后创建自己的实体类,然后通过findViewById来获取到行布局中的每个控件 通过set方法填充内容  这里主要是重写getView方法 里面通过position 获取到当前的实体对象。


ListView里有一些个优化问题   比方说使用convertView  比方说控件较多的时候 使用setTag()  这个网上也有资料就不细谈了,


6.制作可内容可伸缩的图片 这个在tools的包里有draw9patch.bat,使用方法百度下



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值