Xamarin Android 欢迎页

来源:互联网 发布:c语言最大公约数流程图 编辑:程序博客网 时间:2024/06/07 20:07

1.前言

现在市面上的APP大多数在首次安装的时候都有欢迎页,比如说还有轮播图之类的广告,所以欢迎页在APP的应用是非常广泛的,其实实现也是比较简单的,主要是用到ViewPager.

2.页面布局编写

ViewPager.xaml 这是外层包括图片的ViewPager,其实欢迎页的简单实现就是外层一个ViewPager,然后放布局界面进去。

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <android.support.v4.view.ViewPager        android:id="@+id/welcomeViewPager"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:background="#ff0000" /></LinearLayout>

布局界面WelcomePage.xaml,这里就是简单地放一张图片。

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@drawable/welcome01">    <Button        android:id="@+id/welcomeBtn"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentBottom="true"        android:layout_centerHorizontal="true"        android:layout_marginBottom="35dp"        android:background="@drawable/welcome_btn" /></RelativeLayout>

读者可以按照自己的要求去编写布局界面,这里只是讲解简单的实现。

3.Activity的编写

ViewPagerAdapter.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;using Android.Support.V4.View;using Java.Lang;namespace Welcome{    public class ViewPagerAdapter : PagerAdapter    {        private static string SHAREDPREFERENCES_NAME = "first_pref";        // 界面列表         private List<View> views;        private Activity activity;        public ViewPagerAdapter(List<View> views, Activity activity)        {            this.views = views;            this.activity = activity;        }        /// <summary>        /// 获得当前界面数          /// </summary>        public override int Count        {            get            {                {                    return views.Count();                }            }        }        // 初始化arg1位置的界面          public override Java.Lang.Object InstantiateItem(ViewGroup arg0, int arg1)        {            arg0.AddView(views[arg1]);            if (arg1 == views.Count - 1)            {                Button welcomebtn = arg0.FindViewById<Button>(Resource.Id.welcomeBtn);                welcomebtn.Click += (s, e) =>                {                    setGuided();                    goHome();                };            }            return views[arg1];        }        //销毁arg1位置的界面        public override void DestroyItem(ViewGroup arg0, int arg1, Java.Lang.Object arg2)        {            arg0.RemoveView(views[arg1]);        }        public override bool IsViewFromObject(View view, Java.Lang.Object @object)        {            return view == @object;        }        /// <summary>        /// 跳转        /// </summary>        private void goHome()        {            Intent intent = new Intent(activity, typeof(MyLogin));            activity.StartActivity(intent);            activity.Finish();        }        /// <summary>        /// 设置已经引导过了,下次启动不用再次引导         /// </summary>        private void setGuided()        {            ISharedPreferences preferences = activity.GetSharedPreferences(                    SHAREDPREFERENCES_NAME, FileCreationMode.Private);            ISharedPreferencesEditor editor = preferences.Edit();            // 存入数据              editor.PutBoolean("isFirstIn", false);            // 提交修改              editor.Commit();        }    }}

WelcomeActivity.cs

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Android.App;using Android.Content;using Android.OS;using Android.Runtime;using Android.Views;using Android.Widget;using Android.Support.V4.View;namespace Welcome{    [Activity(Label = "WelcomeActivity")]    public class WelcomeActivity : Activity    {        protected override void OnCreate(Bundle savedInstanceState)        {            base.OnCreate(savedInstanceState);            RequestWindowFeature(WindowFeatures.NoTitle);            Window.SetFlags(WindowManagerFlags.Fullscreen, WindowManagerFlags.Fullscreen);  //设置全屏显示            SetContentView(Resource.Layout.WelcomePage);            ViewPager viewPager = FindViewById<ViewPager>(Resource.Id.welcomeViewPager);            //动态加载三个View            var li = LayoutInflater.From(this);            View v1 = li.Inflate(Resource.Layout.WelcomePage1, null);            View v2 = li.Inflate(Resource.Layout.WelcomePage2, null);            View v3 = li.Inflate(Resource.Layout.WelcomePage3, null);            View v4 = li.Inflate(Resource.Layout.WelcomePage4, null);            List<View> listview = new List<View>();            listview.Add(v1);            listview.Add(v2);            listview.Add(v3);            listview.Add(v4);            ViewPagerAdapter viewPagerAdapter = new ViewPagerAdapter(listview, this);            viewPager.Adapter = viewPagerAdapter;        }    }}

到这里就简单地实现了广告图。

0 0
原创粉丝点击