自定义进度条

在开发中我们经常要用到进度条显示下载或者加载的进度。系统自带的黄色进度条在UI效果上经常不能满足策划或者美工的要求。这就要我们屌丝程序员自己自定义进度条。

话不多说,先上图。

Read More

Canvas的save和restore

在创建新的控件或修改现有的控件时,我们都会涉及到重写控件或View的onDraw方法。

onDraw方法会传入一个Canvas对象,它是你用来绘制控件视觉界面的画布。

在onDraw方法里,我们经常会看到调用save和restore方法,它们到底是干什么用的呢?

Read More

LayoutParams的用法

LayoutParams继承于Android.View.ViewGroup.LayoutParams.
LayoutParams相当于一个Layout的信息包,它封装了Layout的位置、高、宽等信息。假设在屏幕上一块区域是由一个Layout占领的,如果将一个View添加到一个Layout中,最好告诉Layout用户期望的布局方式,也就是将一个认可的layoutParams传递进去。
可以这样去形容LayoutParams,在象棋的棋盘上,每个棋子都占据一个位置,也就是每个棋子都有一个位置的信息,如这个棋子在4行4列,这里的“4行4列”就是棋子的LayoutParams。

Read More

onTouchEvent 中onTouch的返回值的意义

今天想捕获Gallery的Touch事件做自己想要的处理,但你添加完setOnTouchListener监听完之后eclipse自动会生成一个onTouch方法,就可以在这里面做你想要做的处理了,若你小心地看它会增加return false这行。我在处理完Event.ACTION_MOVE时将其改为return true。当我运行我的程序的时候发现Gallery不能左右滚动了。我就觉得很纳闷了,怎么不能滚动了呢?然后一个朋友提示我应该return false.我改完运行后,果真可以滚动了,并且我在move的时候也实现了我的处理。当时我就在想:return false和return true有何区别呢?

Read More