gpt4 book ai didi

Xamarin 在 Android 中的框架上形成阴影

转载 作者:行者123 更新时间:2023-12-03 16:45:14 25 4
gpt4 key购买 nike

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 native 的了解有限。谁能告诉我该看什么,也许是一些好的代码示例?我还没有发现任何与此类似的东西。

最佳答案

在Android平台上可以很容易,但首先你需要在Drawable下创建你的影子。 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”并将其放在 Drawable 下Android 项目的文件夹,然后在您的 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官方文档: LayerList .

关于Xamarin 在 Android 中的框架上形成阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42505696/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com