在一些欢迎界面中,我们可能会遇到这样的需求,界面中的某一部分文字或者图像,渐渐变亮显示出来,或者变暗隐藏。或许你首先想到的是,自定义view,然后在ondraw方法中,启动一个线程,对部分控件进行操作等等。是的,开始我也是这么想的。但是,自定义控件还停留在拼凑阶段的我,实在是不想这样做。恩,我比较懒。于是,查了一些简单的方法,看到一篇文章中有关于图片渐变的。原理也很简单,在工作线程中,不断的改变图片的通透度,在用handler通知主线程界面更新。首先,简单说明下32位图的四个颜色值,rgb代表颜色的组成,不多说,alpha值,表示图片的透明度,为0,透明,为255,不透明,中间值,半透明。
然而,我们的需求并不是整个界面全部变明或变暗,怎么办呢?投机取巧下,准备俩张图片,第一张,做背景图,这张图包含了你所有不需要变化的部分,这张图,不透明。第二张图,大小和第一张一样,只是比第一张多了要变化的部分,或者干脆只有要变化的部分。一个imageview标签,铺满全屏,图片就是这张,透明。ok,我们只需要在代码里更改第二张图的通透度就搞定了。
接下来,就是布局,可以用framelayout,当然,相对布局也没什么问题。