Android学习总结——欢迎页和导航页的实现
activity_welcome.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context="com.example.sssss.fllm.Welcome"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/imageView" android:scaleType="fitXY" android:src="@drawable/welcome" /> </LinearLayout>
activity_guide.xml
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.sssss.fllm.Guide"> <android.support.v4.view.ViewPager android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:id="@+id/viewPage"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center_horizontal" android:layout_alignParentBottom="true" android:id="@+id/ll"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/iv1" android:src="@drawable/login_point_selected"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/iv2" android:src="@drawable/login_point"/> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/iv3" android:src="@drawable/login_point"/> </LinearLayout> </RelativeLayout>
view1.xml
<?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"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageView1" android:background="@drawable/guide_1"/> </LinearLayout>
view2.xml
<?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"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageView2" android:background="@drawable/guide_2"/> </LinearLayout>
view3.xml
<?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"> <ImageView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/imageView3" android:background="@drawable/guide_3"/> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:orientation="horizontal" > </LinearLayout> <Button android:id="@+id/btnStart" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="点击进入>>>" android:layout_marginBottom="41dp" android:layout_alignParentBottom="true" android:layout_centerHorizontal="true" /> </RelativeLayout>
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.sssss.fllm"> <uses-permission android:name="android.permission.INTERNET"/> <application android:allowBackup="true" android:icon="@drawable/kunyi" android:label="@string/app_name" android:supportsRtl="true" android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> mipmap <activity android:name=".Welcome"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name=".Guide"></activity> </application> </manifest>
Welcome.java
package com.example.sssss.fllm; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.net.Uri; import android.os.Handler; import android.os.Message; import android.os.Bundle; public class Welcome extends Activity { //设置延时时间 private static final int TIME=2000; //通过参数来决定跳转哪一个界面 private static final int GO_KYTeach=1000; private static final int GO_GUIDE=1001; //判断handler发送了什么消息 private boolean isFirstIn=false; //等待的时间不能让其在主线程中沉睡,应通过Handler来进行沉睡 private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { switch (msg.what){ case GO_KYTeach: goHome(); break; case GO_GUIDE: goGuide(); break; } } }; private void init(){ //获取 SharedPreferences perferences=getPreferences(MODE_PRIVATE); isFirstIn=perferences.getBoolean("isFirstIn",true); if(!isFirstIn){ handler.sendEmptyMessageDelayed(GO_KYTeach,TIME); }else { handler.sendEmptyMessageDelayed(GO_GUIDE,TIME); //储存 SharedPreferences.Editor editor=perferences.edit(); editor.putBoolean("isFirstIn",false); //提交 editor.commit(); } } public void goHome(){ } public void goGuide(){ Intent intent=new Intent(Welcome.this,Guide.class); startActivity(intent); finish(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_welcome); init(); } }
Guide.java
package com.example.sssss.fllm; import android.app.Activity; import android.content.Intent; import android.net.Uri; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.ImageView; import java.util.ArrayList; import java.util.List; public class Guide extends Activity implements ViewPager.OnPageChangeListener { private Button btnStart; private ViewPager viewPager; private View view1, view2, view3; private List<View> viewList;//view数组 private PagerAdapter pagerAdapter; private ImageView[] dots; private int[] ids={R.id.iv1,R.id.iv2,R.id.iv3}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_guide); pagerAdapter = new PagerAdapter(){ @Override public int getCount() { return viewList.size(); } @Override public boolean isViewFromObject(View view, Object object) { return view==object; } @Override public void destroyItem(ViewGroup container, int position, Object object) { //super.destroyItem(container, position, object); container.removeView(viewList.get(position)); } @Override public Object instantiateItem(ViewGroup container, int position) { //return super.instantiateItem(container, position); container.addView(viewList.get(position)); return viewList.get(position); } }; initView(); initDots(); } public void initView(){ viewPager= (ViewPager) findViewById(R.id.viewPage); LayoutInflater inflater=getLayoutInflater().from(this); view1 = inflater.inflate(R.layout.view1, null); view2 = inflater.inflate(R.layout.view2,null); view3 = inflater.inflate(R.layout.view3, null); viewList = new ArrayList<View>();// 将要分页显示的View装入数组中 viewList.add(view1); viewList.add(view2); viewList.add(view3); viewPager.setAdapter(pagerAdapter); viewPager.setOnPageChangeListener(this); btnStart= (Button)viewList.get(2).findViewById(R.id.btnStart); btnStart.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); } public void initDots(){ dots=new ImageView[viewList.size()]; for(int i=0;i<viewList.size();i++){ dots[i]= (ImageView) findViewById(ids[i]); } } @Override public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) { } @Override public void onPageSelected(int position) { for (int i=0;i<ids.length;i++){ if(position==i){ dots[i].setImageResource(R.drawable.login_point_selected); }else { dots[i].setImageResource(R.drawable.login_point); } } } @Override public void onPageScrollStateChanged(int state) { } }