Xamarin.Form 调用原生控件的方法

1. 将原生控件jar包转为dll  

 

2. 将Andriod项目引入转换之后的dll文件

3. Xamarin.Form项目创建一个Page,加入传播参数的静态字段

 public static BindableProperty PinsProperty =
                     BindableProperty.Create<MapPage, IEnumerable>(p => p.Pins, default(IEnumerable));

        public IEnumerable Pins
        {
            get
            {
                return (IEnumerable)GetValue(PinsProperty);
            }
            set
            {
                this.SetValue(PinsProperty, value);
            }
        }

4. Xamarin.Android项目中创建一个ViewRender,继承PageRenderer。重写OnElementChanged(ElementChangedEventArgs<Page> e)方法。

 protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
        {
            base.OnElementChanged(e);
            if (this.Context == null) return;
            mapPage = e.NewElement as MapPage;

            layout1 = new LinearLayout(this.Context);
            this.AddView(layout1);
            mapView = new MapView(this.Context);
            mapView.Map.MyLocationEnabled = true;

            #region 比例
            MapStatus.Builder builder = new MapStatus.Builder();
            builder.Zoom(12.0f);
            mapView.Map.SetMapStatus(MapStatusUpdateFactory.NewMapStatus(builder.Build()));
            #endregion

            mapPage.Pins.Cast<Models.Station>().ToList().ForEach(x => {
                LatLng point = new LatLng(x.Longitude, x.Latitude);
                //构建Marker图标
                BitmapDescriptor bitmap_off = BitmapDescriptorFactory
                        .FromResource(Resource.Drawable.Map_OffLine);
                BitmapDescriptor bitmap_on = BitmapDescriptorFactory
                        .FromResource(Resource.Drawable.Map_OnLine);
                //构建MarkerOption,用于在地图上添加Marker
                OverlayOptions option = new MarkerOptions().InvokeIcon(bitmap_off);


            layout1.AddView(mapView);
        }

 

转载于:https://www.cnblogs.com/Xamarin-Oz/p/11223911.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值