WEB开发网
开发学院手机开发Android 开发 Android 自定义 UI 组件 阅读

Android 自定义 UI 组件

 2010-03-04 04:00:00 来源:WEB开发网   
核心提示:上周面试时和某android知名初创公司的CTO有过简短的交流,因为我之前在android都是采用标准UI组件开发,Android 自定义 UI 组件,所以app的界面看上去朴素的很(做多了企业级应用的综合症),而因为他们目前都是针对消费级市场的,自定义View实例AnalogClock源码针对Android底层Vie

上周面试时和某android知名初创公司的CTO有过简短的交流。

因为我之前在android都是采用标准UI组件开发,所以app的界面看上去朴素的很(做多了企业级应用的综合症)。而因为他们目前都是针对消费级市场的,所以必须把界面做的好看甚至花哨以此吸引用户的眼球。“我们80%的代码都是用在界面上的,后台很少。”大概是这么个意思。

回来后,在android developer上看到的确有自定义组件的介绍:

http://developer.android.com/guide/topics/ui/custom-components.html

不过太抽象,还是要通过一个实例来say hello。

中文baidu下,基本上都是下面这个例子抄来抄去。

----

自定义View实例AnalogClock源码

针对Android底层View的直接构造很多网友没有实战经验,本次Android开发网结合目前平台开源代码一起通过AnalogClock类来理解 View的直接继承。AnalogClock就是Home Screen上的那个带有两根指针的表盘类。

public class AnalogClock extends View {

private Time mCalendar;

private Drawable mHourHand; //时针

private Drawable mMinuteHand; //分针

private Drawable mDial; //表盘背景

private int mDialWidth; //表盘宽度

private int mDialHeight; //表盘高度

private boolean mAttached; //附着状态

private final Handler mHandler = new Handler(); //定一个Handler类实现更新时间

private float mMinutes;

private float mHour;

private boolean mChanged; //时间是否改变

public AnalogClock(Context context) {

this(context, null);

}

public AnalogClock(Context context, AttributeSet attrs) {

this(context, attrs, 0);

}

public AnalogClock(Context context, AttributeSet attrs, int defStyle) {

super(context, attrs, defStyle);

Resources r = mContext.getResources();

TypedArray a = context.obtainStyledAttributes(

attrs, com.android.internal.R.styleable.AnalogClock, defStyle, 0);

mDial = a.getDrawable(com.android.internal.R.styleable.AnalogClock_dial);

1 2 3 4  下一页

Tags:Android 定义 UI

编辑录入:coldstar [复制链接] [打 印]
赞助商链接