android - 按钮的渐变背景 - 自定义渲染器

标签 android ios xamarin xamarin.forms custom-renderer

我在为 Android 项目中具有渐变背景的按钮制作自定义渲染器时遇到问题。在 iOS 上我使用了这段代码:

public class CustomButtonRenderer : Xamarin.Forms.Platform.iOS.ButtonRenderer
    {
        public override void LayoutSubviews()
        {
            foreach (var layer in Control?.Layer.Sublayers.Where(layer => layer is CAGradientLayer))
                layer.Frame = Control.Bounds;
            base.LayoutSubviews();
        }

        protected override void OnElementChanged(ElementChangedEventArgs<Button> e)
        {
            base.OnElementChanged(e);

            if (e.OldElement == null)
            {
                var gradient = new CAGradientLayer();
                gradient.CornerRadius = Control.Layer.CornerRadius = 10;
                gradient.Colors = new CGColor[]
                {
                    UIColor.FromRGB(51, 102, 104).CGColor,
                    UIColor.FromRGB(51, 202, 204).CGColor
                };
                var layer = Control?.Layer.Sublayers.LastOrDefault();
                Control?.Layer.InsertSublayerBelow(gradient, layer);
            }
        }
    }

如何在 Android 中做同样的事情?

最佳答案

关于android - 按钮的渐变背景 - 自定义渲染器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45055237/

相关文章:

c# - JsonConvert.DeserializeObject 和 ThreadAbortedException

xamarin - 如何在 Mac OS X 中的 Xamarin Studio 下启用 Nuget 包还原

java - 有没有办法将 setOnClickListener 与 Android Spinner 一起使用?

android - 一个软件包是否可以有多个启动 Intent ?

android - 将 DatePickerDialog 按钮更改为文本

android - 已发布的 Flutter 应用程序在启动时崩溃

ios - Apple 更改了 Metal 中允许的矢量格式

ios - 如何修复弃用警告消息?

iphone - 如何在iPhone App中实现PSCollectionView?

ios - 在不阻塞标签栏的情况下显示屏蔽的 BTProgressHUD?