安卓开发实现阴影效果

这篇具有很好参考价值的文章主要介绍了安卓开发实现阴影效果。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题背景

安卓日常学习和开发过程中,经常会有实现组件和布局阴影效果的场景,本文将介绍安卓开发过程实现阴影效果的几种方案。

问题分析

(1)elevation的方式
Material Design提供了View的阴影效果设置。主要由两个属性决定:elevation和translationZ。
Z = elevation + translationZ
PS:这种实现方式只有API21以及以上才能支持实现。
elevation属性表示View高度加上高度就会有阴影效果。 translationZ属性表示给View增加一个Z轴的变换效果。配合elevation属性一起使用阴影效果更突出。
实现方式如下:

    <TextView
        android:layout_margin="30dp"
        android:background="@android:color/holo_blue_bright"
        android:elevation="10dp"
        android:text="elevation配置阴影效果fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

注意,直接使用elevation方式实现阴影效果,需要配置background背景颜色,不然可能会没有阴影效果。
(2)cardView的方式
CardView是Android提供的官方控件自身支持设置阴影效果。阴影实现由cardElevation和cardMaxElevation实现。
实现方式如下:

    <androidx.cardview.widget.CardView
        android:layout_margin="30dp"
        app:cardMaxElevation="10dp"
        app:cardElevation="10dp"
        app:cardCornerRadius="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:text="CardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </androidx.cardview.widget.CardView>

(3)SCardView方式
CardView 也可以实现圆角阴影效果,但是 CardView 的阴影方向是我们无法设置的。为什么强调阴影方向这个条件呢,因为 CardView 在 API 21 之后,阴影的显示效果在屏幕的各个位置是不一致的。SCardView 出现就解决了这些问题(参考 https://github.com/meetsl/SCardView-master )。
实现方式如下:
加入依赖

implementation 'io.github.meetsl:SCardView:1.2'

代码使用:

    <com.meetsl.scardview.SCardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        app:cardBackgroundColor="@android:color/holo_red_light"
        app:cardCornerRadius="5dp"
        app:cardElevation="5dp"
        app:cardLightDirection="none">
        <TextView
            android:text="SCardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </com.meetsl.scardview.SCardView>

问题解决

话不多说,直接上代码。
(1)引入依赖

implementation 'io.github.meetsl:SCardView:1.2'

(2)布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:orientation="vertical"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".TestViewActivity">

    <TextView
        android:layout_margin="15dp"
        android:id="@+id/text"
        android:background="@android:color/holo_blue_bright"
        android:elevation="10dp"
        android:text="elevation配置阴影效果fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <androidx.cardview.widget.CardView
        android:layout_margin="15dp"
        app:cardMaxElevation="10dp"
        app:cardElevation="10dp"
        app:cardCornerRadius="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:text="CardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </androidx.cardview.widget.CardView>

    <com.meetsl.scardview.SCardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        app:cardBackgroundColor="@android:color/holo_red_light"
        app:cardCornerRadius="5dp"
        app:cardElevation="5dp"
        app:cardLightDirection="none">
        <TextView
            android:text="SCardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </com.meetsl.scardview.SCardView>

    <TextView
        android:layout_margin="15dp"
        android:background="@android:color/holo_blue_bright"
        android:elevation="10dp"
        android:text="elevation配置阴影效果;askl;jfasfjakl;fajfjklfaklfj;"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <androidx.cardview.widget.CardView
        android:layout_margin="15dp"
        app:cardMaxElevation="10dp"
        app:cardElevation="10dp"
        app:cardCornerRadius="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:text="CardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </androidx.cardview.widget.CardView>

    <com.meetsl.scardview.SCardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        app:cardBackgroundColor="@android:color/holo_red_light"
        app:cardCornerRadius="5dp"
        app:cardElevation="5dp"
        app:cardLightDirection="none">
        <TextView
            android:text="SCardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </com.meetsl.scardview.SCardView>

    <TextView
        android:layout_margin="15dp"
        android:background="@android:color/holo_blue_bright"
        android:elevation="10dp"
        android:text="elevation配置阴影效果fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"/>

    <androidx.cardview.widget.CardView
        android:layout_margin="15dp"
        app:cardMaxElevation="10dp"
        app:cardElevation="10dp"
        app:cardCornerRadius="5dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView
            android:text="CardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </androidx.cardview.widget.CardView>

    <com.meetsl.scardview.SCardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="15dp"
        app:cardBackgroundColor="@android:color/holo_red_light"
        app:cardCornerRadius="5dp"
        app:cardElevation="5dp"
        app:cardLightDirection="none">
        <TextView
            android:text="SCardView配置阴影fjasfjkl;askl;jfasfjakl;fajfjklfaklfj;"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
    </com.meetsl.scardview.SCardView>
</LinearLayout>

运行结果如下:
android阴影效果,移动开发,android

问题总结

本文介绍了安卓开发过程实现阴影效果的几种方案:(1)elevation的方式(2)cardView的方式(3)SCardView方式。文章来源地址https://www.toymoban.com/news/detail-652324.html

到了这里,关于安卓开发实现阴影效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS中如何实现文字阴影效果(text-shadow)?

    前端入门之旅:探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发者,这里都将为你提供一

    2024年02月11日
    浏览(99)
  • tauri-react:快速开发跨平台软件的架子,支持自定义头部和窗口阴影效果

    一个使用 tauri+react+ts+antd 开发跨平台软件的模板,支持窗口头部自定义和窗口阴影,不用再自己做适配了,拿来即用,非常 nice。而且已经封装好了 tauri 的 http 请求工具,省去很多弯路。 开原地址:GitHub - Sjj1024/tauri-react: 一个最基础的使用tauri和react开发跨平台应用软件的架

    2024年02月13日
    浏览(71)
  • 移动开发作业三:使用Android studio来实现简单的计算器

    一.实验要求 结合所学内容利用Android studio来设计一个开发实例,这里去我选择做一个简易的计算器,可以初步实现加减乘除。 二.实验功能 该计算器与我们平常手机上的计算器一样,可以进行加减乘除操作。 三.实验过程 1.首先是关于计算器的布局 在layout文件下的drawable文件

    2024年02月02日
    浏览(58)
  • 6.安卓移动端开发

    Android官网 提供了开发环境,也就是android平台,即android SDK,即android版本 SDK版本和API版本的关系(安卓的版本是个位数和小数形式增长,API版本是以个位数正则,所以API版本号和android版本号不一致,但是是一一对应关系) SDK工具包内容 对提供的开发环境进行优化 Jetpack 把一

    2024年02月11日
    浏览(45)
  • Unity开发——移动端实用特性使用(安卓/IOS)

    如何让屏幕保持常亮?如何获取手机当前电量?如何…? 接下来列举一些实用特性和方法: 1.防止屏幕休眠,从而让屏幕保持常亮 SleepTimeout.NeverSleep是一个特殊的值,它会禁止屏幕进入休眠状态,因此屏幕会保持常亮。 注意,这个设置可能会导致用户的电池电量消耗增加 ,

    2024年02月15日
    浏览(42)
  • Android:实现安卓小程序-记事本(备忘录)的开发,教你如何增加拿到BAT大厂offer几率

    public MyBaseAdapter(Context context, List data) { this.context = context; this.data = data; } @Override public Object getItem(int i) { return null; } @Override public long getItemId(int i) { return 0; } @Override public int getCount() { if(data==null) return 0; return data.size(); } } 接着在编写NoteAdapter类继承上类,初始化view, 将Note条目的

    2024年04月25日
    浏览(60)
  • 【unity与android的交互】移动游戏发布更安心!Unity安卓平台打包相关的常见参数全详解

    👨‍💻个人主页 :@元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏 :Unity基础实战 首先需要切换到安卓平台 step1 :打包前的基础参数的设置 step2:包名的设置需要勾选,必须要去设置的内容 打包后进行测

    2024年04月17日
    浏览(75)
  • 安卓移动应用开发课程设计(图书借阅系统)代码+使用流程介绍文档

    目录 第1章 概述 1 1.1 开发背景 1 1.2 开发目标 1 1.3 设计原则 1 第2章 需求分析 1 2.1 项目定义 2 2.2 需求陈述 2 2.3 不同角色用例 2 第3章 可行性分析 3 3.1 经济可行性分析 3 3.2 技术可行性分析 3 3.3 法律可行性分析 4 3.4 操作可行性分析 4 第4章 总体设计 4 4.1 设计思路 4 4.2 设计意义

    2024年02月06日
    浏览(72)
  • WPF - 阴影效果

    基本属性: 属性 说明 描述 Color 设置阴影效果背景色 Color=\\\"Red\\\" ShadowDepth 设置阴影的偏移度 ShadowDepth=\\\"5\\\" Direction 设置阴影的角度 Direction=\\\"-45\\\" BlurRadius 设置阴影模糊程度 BlurRadius=\\\"20\\\" Opacity 设置阴影透明度 Opacity=\\\"1\\\" 阴影效果介绍: 在WPF中,你可以使用DropShadowEffect属性为控件添加

    2024年02月10日
    浏览(38)
  • css3阴影效果

    首先效果如下: 阴影效果完整代码如下 上面的动态图是没有加transition的,为了美观加上了一个

    2024年02月12日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包