android中图型的阴影效果(shadow-effect-with-custom-shapes)
思路:
在自己定义shape中添加一层或多层,并错开。就可以显示阴影效果。为添加立体感,button按下的时候,仅仅设置一层。我们能够通过top, bottom, right 和 left 四个參数来控制阴影的方向和大小。
关系图
下面自己定义两种阴影效果:
res/drawable-hdpi/shadow1.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true"> <layer-list> <item android:left="4dp" android:top="4dp"><shape> <solid android:color="#ff58bb52" /> <corners android:radius="30dip" /> </shape></item> </layer-list> </item> <item> <layer-list> <!-- 第一层 --> <item android:left="4dp" android:top="4dp"><shape> <solid android:color="#66000000" /> <corners android:radius="30dip" /> <!-- 描边 --> <stroke android:width="1dp" android:color="#ffffffff" /> </shape></item> <!-- 第二层 --> <item android:bottom="4dp" android:right="4dp"><shape> <solid android:color="#ff58bb52" /> <corners android:radius="30dip" /> <!-- 描边 --> <stroke android:width="1dp" android:color="#ffffffff" /> </shape></item> </layer-list></item> </selector>
/TestAA/res/drawable-hdpi/shadow2.xml
<?xml version="1.0" encoding="utf-8"?
> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <!-- 点击之后 --> <item android:state_pressed="true"> <layer-list> <item android:left="4dp" android:top="4dp"> <shape> <solid android:color="#ff58bb52" /> <corners android:radius="3dp" /> </shape> </item> </layer-list></item> <!-- 正常状态 --> <item> <layer-list> <!-- 第一层 --> <item android:left="2dp" android:top="2dp"> <shape> <solid android:color="#66000000" /> <corners android:radius="3dp" /> </shape> </item> <!-- 第二层 --> <item android:bottom="4dp" android:right="4dp"> <shape> <solid android:color="#ff58bb52" /> <corners android:radius="3dp" /> </shape> </item> <!-- 第三层 --> <item android:bottom="6dp" android:right="6dp"> <shape> <solid android:color="#ffcccccc" /> <corners android:radius="3dp" /> </shape> </item> </layer-list> </item> </selector>
效果图:
相关文章
- [Android]中文API(三)android.account包下的那些类
- [Android]android自动化测试十六之calabash-android
- Android问题-打开DelphiXE8与DelphiXE10编译空工程提示“[Exec Error] The command exited with code 1.”
- Failed to fetch URl https://dl-ssl.google.com/android/repository/addo Android SDK更新以及ADT更新出现问题的解决办法
- Android获取内置sdcard跟外置sdcard路径
- 百度地图android studio导入开发插件
- Android开发之旅:组件生命周期(一)
- Android API之android.content.AsyncQueryHandler
- Android解析JSON速度对比
- android中的单选和多选框
- EasyPlayer Android基于ffmpeg实现播放(RTSP/RTMP/HTTP/HLS)同步录像功能
- Android设置对话框去除黑边
- 《android开发艺术探索》读书笔记(十)--Android的消息机制
- 【Android】android镜像翻转
- Android:轮播图ViewPager自动轮播最简单方法
- android开发分享Android中外接键盘的检测的实现
- Android解析{[{}{}]}
- Android Dialog 解决输入法挡住输入框的问题
- 【Android 逆向】Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )
- Android系统信息获取
- android中FileObserver的运用
- Android修改kernel logo和开机动画(android)
- Android NuPlayer播放框架
- Android Studio下“Error:Could not find com.android.tools.build:gradle:2.2.1”的解决方法
- > Manifest merger failed with multiple errors, see logs -- Android Studio问题汇总
- android 完全退出应用程序
- android电池充电动画,Android 开机充电图标和充电动画效果
- The Android Gradle plugin supports only Kotlin Gradle plugin version 1.5.20 and higher
- Android Studio 怎么打开项目后自动打开一个新窗口
- Android的报错提示:Failed to resolve: com.android.support:appcompat-v7:28.0.0
- 迁移到Android后android.support.v4.content.FileProvider运行崩溃