Xamarin 在 Android 中形成 Shadow on Frame

2023-11-26

Xamarin Forms 中的 Frame 类非常有限,不允许我在 Frame 后面获得阴影。我使用以下代码为 iOS 制作了一个自定义渲染器:

public class RatingInfoFrameRenderer : FrameRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
    {
        base.OnElementChanged(e);

        Layer.BorderColor = UIColor.White.CGColor;
        Layer.CornerRadius = 10;
        Layer.MasksToBounds = false;
        Layer.ShadowOffset = new CGSize(-2, 2);
        Layer.ShadowRadius = 5;
        Layer.ShadowOpacity = 0.4f;
    }
}

在 Android 上制作类似的产品给我带来了问题,因为我对 Android 原生的了解有点有限。谁能告诉我要看什么,也许是一些很好的代码示例?我还没有找到任何与此类似的东西。


在Android平台上这可以很容易,但首先,你需要在下面创建你的影子DrawableAndroid 资源文件夹。例如,如图所示Android 开发人员提示和技巧由匿名贡献者提供:

<?xml version="1.0" encoding="utf-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
  <item>
    <shape android:shape="rectangle">
      <solid android:color="#CABBBBBB" />
      <corners android:radius="2dp" />
    </shape>
  </item>

  <item
      android:left="0dp"
      android:right="0dp"
      android:top="0dp"
      android:bottom="2dp">
    <shape android:shape="rectangle">
      <solid android:color="@android:color/white" />
      <corners android:radius="2dp" />
    </shape>
  </item>
</layer-list>

将此文件命名为“shadow.xml”并将其放置在DrawableAndroid 项目的文件夹,然后在你的RatingInfoFrameRenderer:

public class RatingInfoFrameRenderer : FrameRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Frame> e)
    {
        base.OnElementChanged(e);
        if (e.NewElement != null)
        {
            ViewGroup.SetBackgroundResource(Resource.Drawable.shadow);
        }
    }
}

要改变shadow的样式,可以修改shadow.xml文件,更多信息可以参考google的官方文档:图层列表.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xamarin 在 Android 中形成 Shadow on Frame 的相关文章

随机推荐

  • Scala 代码不获取 s3 文件

    我正在尝试运行 EMR 烫金作业 Scala 代码应该获取位于 S3 存储桶中的文本文件的内容 这scala io source库搞乱了 S3 路径的正确位置 我将参数 runidfile 提供给 EMR 作业 runidfile s3 m
  • 上下文无关语言问题(泵引理)

    我知道这与编程没有直接关系 但我想知道是否有人知道如何将泵引理应用于以下证明 显示L a n b n c m n m 不是上下文无关的语言 我对应用泵送引理非常有信心 但这一点真的让我很恼火 你怎么认为 编辑 我完全把你引入了错误的轨道 当
  • WordPress 永久链接结构更改问题

    我在 SO 上看到过一些关于这个问题的其他帖子 但是建议的解决方案都不适合我 所以我重新发布 将我的永久链接结构更改为 postname 所有链接均无效 我得到以下 404 信息 Not Found The requested URL my
  • 模拟所有物理按钮,例如 iOS 7 上主页按钮的压力(越狱)

    我试图在 iOS 7 上模拟 按下主页按钮 但之前在 iOS 6 上使用的方法不起作用 我当然指的是越狱设备 include GSEvent h void simulateHomeButton struct GSEventRecord re
  • 为什么我的课程不符合 CLS?

    这真让我困惑 我尝试删除只读 更改名称 我在这里做错了什么 public abstract class CatalogBase
  • 隐藏 URL 中传递的变量

    我们一直在开发一个 Web 应用程序 并且即将完成它 但有一件事困扰着我们 尽管它绝不会停止生产 当我们调用其中一个页面 index html 时 有时必须在 URL searchid 中向其传递一个变量 所以我们得到一个像这样的页面htt
  • 使用 rowwise() 计算数据帧每行中 NA 数量的问题

    我在使用 rowwise 计算每行中 NA 的数量时遇到问题 我的最小例子 df lt data frame Q1 c rep 1 1 rep NA 9 Q2 c rep 2 2 rep NA 8 Q3 c rep 3 3 rep NA 7
  • 如何在选项卡关闭时禁用 VS2013 中的 MRU 行为

    我已经将 ctl tab 和 ctrl shift tab 重新映射到 Window Next Tab 和 Window Previous Tab 但是当我调用 File Close 时 Visual Studio 2013 仍然使用 MR
  • SparkSQL SQL 查询写入 JDBC 表的是什么?

    用于 Spark 中的 SQL 查询 对于读取 我们可以通过以下方式读取 jdbc CREATE TEMPORARY TABLE jdbcTable USING org apache spark sql jdbc OPTIONS dbtab
  • Java 和 Xerces:找不到属性 XMLConstants.ACCESS_EXTERNAL_DTD

    我在此博客上查找了类似的帖子 但找不到我的问题的答案 因此我决定寻求帮助 我用 Java 编写了这个简单的函数 public void open InputStream stream throws FoliumFatalException
  • Python - 正确终止/退出期货线程?

    我之前使用的是threading Thread模块 现在我正在使用concurrent futures gt ThreadPoolExecutor 以前 我使用以下代码来退出 终止 完成线程 def terminate thread thr
  • 如何将枚举值传递给 wcf webservice

    ksoap2 可以将枚举传递给 web 服务吗 有一个wcf网络服务 OperationContract string TestEnum CodeType code CodeType 是 dotnet 枚举 public enum Code
  • 通过单击按钮更改 viewpager 片段

    我试图通过单击按钮来更改 viewpager 片段 我有 5 个片段 每个片段都有自己的 xml 文件 frag1 xml frag2 xml 等 每个片段都有 5 个按钮 可以转到 viewpager 的其他页面 但问题是如何在 Frag
  • 无法通过 PuTTY 连接到亚马逊 EC2 实例

    我在 Amazon Web Services AWS 中创建了一个新的 Amazon EC2 实例 参考文档 我什至添加了这样的 SSH 规则 Port 22 Type SSH Source
  • Calendar.Month 给出错误的输出

    我一直在使用java util对于所有日期和日历表示 但我在这里面临一个奇怪的问题 Calendar MONTH Calendar DAY OF MONTH等都给出错误的输出 但是当我使用Calendar getTime 我得到了正确的输出
  • Go 中的 Marshall 映射到 XML

    我尝试将地图输出为 XML 数据 但收到以下错误 xml unsupported type map string int 编组映射对于 JSON 工作得很好 所以我不明白为什么它对于 XML 不能同样工作 使用 Struct 真的是唯一的方
  • Git - 删除 Blob

    有没有一种方法或命令可以使用 ID 从 git 中删除 blob 我使用了命令 git rev list objects all git cat file batch check objectname objecttype rest gre
  • Ember:如何将 TinyMCE 文本区域字段值绑定到模型

    我在模板中嵌入了 TinyMCE 现在 我想对 TinyMCE 编辑器 实际上是一个文本区域 的内容进行值绑定 See http jsfiddle net cyclomarc wtktK 10 在文本字段中输入文本时 bodyText 中的
  • 嵌入式 HSQLDB 将数据保存到文件中

    我正在创建一个基于 spring 的 Web 应用程序 该应用程序使用嵌入式 hsqldb 我的 spring 配置非常简单
  • Xamarin 在 Android 中形成 Shadow on Frame

    Xamarin Forms 中的 Frame 类非常有限 不允许我在 Frame 后面获得阴影 我使用以下代码为 iOS 制作了一个自定义渲染器 public class RatingInfoFrameRenderer FrameRende