Android UI 学习心得(一)
来源:互联网 发布:淘宝卖家等级在哪里看 编辑:程序博客网 时间:2024/06/06 10:54
在学习Android开发的时候,一直是跟着团队在做项目,但是没有一个系统的学习结构,导致感觉自己哪里都有错误,哪里都不会,前几天买了本书,准备系统学习Android开发,下面记录学习中的相关心得,如果有什么不对的地方请指教(请大家多提意见):
自定义View:
自定义View在Android开发中是很常见的,自定义View就表示你可以自己定义显示效果,这个就给开发者一个很大的自由空间,建立自定义View的步骤如下:
1、创建一个类继承View,然后实现自定义View的构造方法,代码如下:
public class BowView extends View{ public BowView(Context context) { super(context); } public BowView(Context context, AttributeSet attrs) { super(context, attrs); } public BowView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); }一般情况下实现上面的构造方法就可以了;
2、在Layout中进行引用,也就是通过标签来和这个自定义View相互匹配,代码如下:
<com.xushuangshuang.androidtest2.view.BowView android:id="@+id/bow_view_myself" android:layout_width="wrap_content" android:layout_height="wrap_content" />
自定义的View在这里就完成了,也就是这样你已经可以完成了自定义View的定义和引用,在自定义View中有很多的方法提供给你去监控和实现UI的状况:
@Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); }绘画,在开始的时候也就是加载自定义View的时候回调这个方法进行对组件绘画,在这个方法中可以绘画自己想要的效果;
@Override public boolean onTouchEvent(MotionEvent event) { return true; }touch事件的监控,在此方法中event可以获得UI界面的手势动作情况,在此可以通过对手势的监控来动态的改变UI的状态,在此进行绘画的时候,改变完成应该调用
invalidate();方式让UI重绘UI界面,这样就可使事件的点击情况可以在页面做出反应。在自定义View中这两个方法很常用,在继承View父类中很多方法。
自定义属性:
自定义属性就是因为Android给的属性不能满足我们的需求,自定义相关的属性可以对我们的程序进行扩展,更容易控制UI界面。
Android的UI界面有两种一种是在Layout 文件夹下编写xml文件,这种方式是大多数的情况下的UI设计,但是有些时候需要实现一些特定的效果,或者传递修改特定的参数在SDK中没有为我们提供,这个时候就可以在Values文件夹下建立一个attrs.xml文件,在里面写出自己需要添加的控件属性,最后在想要的页面进行引用,然后就可以使用了,因为自定义一般情况下是需要改变的,而这种改变很可能需要程序的控制,因此在程序中可以调用
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.MyView);获得TypeArray的对象,通过这个对象就可以获得在页面中的值,这种传递方式的优点就是将自定义的部分提取出来,降低代码的耦合度,也就这样可以达成一种共识,然后大家都可以使用如果需要的话,Google公司真的是想了很多!!!!!!
0 0
- Android UI 学习心得(一)
- Android UI学习心得(三)
- Android学习心得(一)
- 构建android UI 学习心得,摘要
- Android学习心得(一)——绘图
- android新浪客户端学习心得(一)
- Android学习心得(一)记录一个问题
- android高级UI(一)
- Android UI学习(一)
- Android优化UI(一)
- Android adb shell学习心得(一)
- 学习心得(一)
- 学习心得(一)
- ExtJS 学习心得(一)
- ExtJS 学习心得(一)
- JavaCC学习心得(一)
- Servlet学习心得(一)
- Hibernate学习心得(一)
- sublime个人配置(C++程序员)
- Spring 依赖注入:获取properties文件中属性值
- 游戏设计的艺术:一本透镜的书——第二十七章 你的游戏可能会有一位客户
- 一些项目用到的正则表达式
- tomcat 6.x下ssi(即让tomcat支持shtml)配置
- Android UI 学习心得(一)
- Excel2003、2007 -- 读写大批量数据
- Linux 下curl模拟Http 的get or post请求
- 黑马程序员——java基础之继承,多态
- Ubuntu基本的正则表达式元字符集合及意义
- PHP基本工作原理
- QueryPerformanceFrequency 和 QueryPerformanceCounter用法
- 游戏设计的艺术:一本透镜的书——第二十八章 为什么是我呢?
- 如何添加真机调试的iOS设备