解决android2.3版本下设置控件透明度的问题
2015-06-24 11:14
351 查看
开发了一段时间4.0的app,突然老板说要兼容2.3。。。
好吧,将版本转为2.3.3,发现原来直接的setAlpha()的函数没了,百度了一下就只有getBackground().setAlpha()......怒摔,这能一样吗,而且要是这个控件没有设置background还会愤怒地报空指针错误。。而且在布局文件上面也没了‘android:alpha=“” ’的方法了。。一时半会想不到什么特别好的取代方法,于是就决定用动画效果来代替——alphaanimation。下面贴代码,还是非常简单的。
<pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; line-height: 21.6000003814697px; font-family: 'Courier New' !important;">Animation a=<span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">new</span> AlphaAnimation(250, 0);<span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">//</span><span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">透明度从250渐变至0</span>
a.setFillAfter(<span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">true</span><span style="margin: 0px; padding: 0px; line-height: 1.5 !important;">); <span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">//</span><span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">将控件设置为动画的最后状态,也就是变为透明</span>
mDrawer.startAnimation(a);</span>
这样一来就可以实现将控件变为透明了,当然了如果完全不想要效果的话,可以调用该语句
虽然感觉实用性不是很大,不过感觉还算是不错的一个解决android 2.3版本下无法直接设置控件透明的问题的方法~
好吧,将版本转为2.3.3,发现原来直接的setAlpha()的函数没了,百度了一下就只有getBackground().setAlpha()......怒摔,这能一样吗,而且要是这个控件没有设置background还会愤怒地报空指针错误。。而且在布局文件上面也没了‘android:alpha=“” ’的方法了。。一时半会想不到什么特别好的取代方法,于是就决定用动画效果来代替——alphaanimation。下面贴代码,还是非常简单的。
<pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; line-height: 21.6000003814697px; font-family: 'Courier New' !important;">Animation a=<span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">new</span> AlphaAnimation(250, 0);<span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">//</span><span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">透明度从250渐变至0</span>
a.setFillAfter(<span style="margin: 0px; padding: 0px; color: rgb(0, 0, 255); line-height: 1.5 !important;">true</span><span style="margin: 0px; padding: 0px; line-height: 1.5 !important;">); <span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">//</span><span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">将控件设置为动画的最后状态,也就是变为透明</span>
mDrawer.startAnimation(a);</span>
这样一来就可以实现将控件变为透明了,当然了如果完全不想要效果的话,可以调用该语句
<pre style="margin-top: 0px; margin-bottom: 0px; padding: 0px; white-space: pre-wrap; word-wrap: break-word; line-height: 21.6000003814697px; font-family: 'Courier New' !important;">a.setDuration(100);<span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">//</span><span style="margin: 0px; padding: 0px; color: rgb(0, 128, 0); line-height: 1.5 !important;">根据需求设置动画的时长</span>
虽然感觉实用性不是很大,不过感觉还算是不错的一个解决android 2.3版本下无法直接设置控件透明的问题的方法~
相关文章推荐
- Android 4.4 keyguard类图
- Android MVP
- Android学习笔记02:基本视图组件之TextView
- android apk包在android 2.3以下系统上安装时遇到的INSTALL_FAILED_DEXOPT和LinearAlloc exceeded capacity问题解决方法
- Android自适应不同屏幕几种方法
- Android笔记之获取视频、图片缩略图
- Android学习笔记01:Paint及Canvas的简单应用
- Android之Adapter用法总结
- 我常用的AndroidStudio快捷键
- 【Android基础】点击Back键退出应用程序
- 6个值得推荐的Android开源框架简介
- Android基本控件之ImageView
- Android的Activity屏幕切换动画(一)-左右滑动切换
- Android.mk添加第三方jar包
- android 实现调查问卷-单选-多选
- Android基础——HTML网页源码的获取
- dumpsys meminfo 说明
- Android Intent参数传递,包括对象复杂集合等多方式传递
- [android]深入理解findViewById原理
- android升级到5.1.1,见了运行模拟器后报错