Android控件阴影效果的几种实现方法
16lz
2021-01-23
文章目录
- 字体阴影
- 用9png图片实现通用阴影效果
- 用9png图片实现网络传输
字体阴影
字体阴影有四个相关参数:
- android:shadowRadius:阴影半径
- android:shadowColor:阴影颜色
- android:shadowDx:水平偏移
- android:shadowDy:垂直偏移
<TextView android:id="@+id/tvshadow" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="60sp" android:textColor="#ffffffff" android:layout_gravity="center" android:text="Test Shadow" android:shadowColor="#ff000000" android:shadowRadius="10" android:shadowDx="10" android:shadowDy="10" />
需要注意的是,这几个参数只对TextView控件有效,其它的控件比如ImageView和布局控件如LinearLayout则无效。
如果需要让布局控件比如LinearLayout有阴影效果怎么办呢?
解决方案就是:制作带有阴影效果的9png图片作为背景图片。
用9png图片实现通用阴影效果
这里提供一个在线制作带有阴影效果的9png的网站:
https://inloop.github.io/shadow4android/
网站提供强大的参数设置功能,能够满足我们设置阴影png需求。
制作出来的效果:
用9png图片实现网络传输
关于9png的使用,平常我们可能会将制作好的png图片放入工程中,然后打包进apk内安装使用。
但是有需求是要求从网络获取9png图片,然后在apk的控件中显示出来。
如果这个9png图片不经过处理,直接放在网上,然后经由app在使用过程中下载下来,将这个bitmap设置成背景,那么你会惊奇的发现这个图片并没有达到9png图片的效果,而是一张普通图片,设置连9png的黑边都显示出来并拉伸了。
原因是如果放在res下的图片,经过打包后实际上是经过处理过的图片,我们可以通过解压apk来查看这个图片,会比原来的9png图片少了两个像素。
所以我们如果要从网络下载一个9png的图片,这个图片也必须经过处理,然后才能放到网上才有效果。
具体做法:
- 找到sdk下的aapt目录:比如sdk\build-tools\28.0.3;
- 运行指令:aapt.exe c -v -S C:\1 -C C:\2,其中C:\1是原始9png图片所在目录,C:\2是处理后的9png图片所在目录。需要注意的是,这两个目录不能一样,否在运行会失败。
更多相关文章
- Android兼容性问题 -- WebP格式图片解码失败
- android 各种控件颜色值
- android控件的对齐方式转讲
- android静态图片和动态壁纸
- Android设置任何控件透明度
- Android 控件及其属性2
- Android : SeekBar 实现图片旋转缩放
- android小问题:RadioButton设置文字在图片背景的下方
- Android BitmapShader 实战 实现圆形、圆角图片