package com.views.activity.welcome; import java.util.ArrayList; import java.util.Locale; import com.manniu.manniu.R; import com.utils.Constants; import com.views.activity.user.Login; import com.views.activity.welcome.ViewPagerAdapter; import android.annotation.SuppressLint; import android.app.Activity; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.support.v4.content.ContextCompat; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.LayoutInflater; import android.view.MotionEvent; import android.view.View; import android.view.View.OnTouchListener; import android.view.Window; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; public class GuideViewActivity extends Activity implements OnTouchListener{ // 定义ViewPager适配器 private ViewPagerAdapter _vpAdapter; // 定义ViewPager对象 //private NoScrollViewPager _viewPager; private ViewPager _viewPager; // 定义各个界面View对象 private View view1, view2, view3; // 定义底部小点图片 private ImageView pointImage0, pointImage1, pointImage2; // 定义一个ArrayList来存放View private ArrayList<View> listViews; // 定义开始按钮对象 private Button _btnStart; // 当前的位置索引值 @SuppressWarnings("unused") private int currIndex = 0; private TextView tv_skip; private RelativeLayout rl1,rl2,rl3; private Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.guide_main); context = this; //_preferences = getSharedPreferences("firstLogin", this.MODE_PRIVATE); // 触发移动事件的最短距离,如果小于这个距离就不触发移动控件 一般用于ViewPager控制是否翻页 // touchSlop = ViewConfiguration.get(this).getScaledTouchSlop(); // 防止按home键之后退回到桌面,再次点击程序重新启动 if ((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0) { finish(); return; } initView(); initData(); } @Override protected void onStop() { super.onStop(); } @Override protected void onDestroy() { super.onDestroy(); try { _vpAdapter = null; _viewPager = null; rl1 = null; rl2 = null; rl3 = null; view1 = null; view2 = null; view3 = null; listViews = null; } catch (Exception e) { } } @SuppressLint("HandlerLeak") private void initView() { // 实例化各个界面的布局对象 LayoutInflater inflater = LayoutInflater.from(this); view1 = inflater.inflate(R.layout.guide_view1, null); view2 = inflater.inflate(R.layout.guide_view2, null); view3 = inflater.inflate(R.layout.guide_view3, null); rl1 = (RelativeLayout)view1.findViewById(R.id.rl_guide1); rl2 = (RelativeLayout)view2.findViewById(R.id.rl_guide2); rl3 = (RelativeLayout)view3.findViewById(R.id.rl_guide3); // 实例化开始按钮 _btnStart = (Button) view3.findViewById(R.id.btn_start); Locale locale = getResources().getConfiguration().locale; String language = locale.getLanguage(); if (language.endsWith("zh")){ Constants.language = "zh"; rl1.setBackgroundResource(R.drawable.guide1); rl2.setBackgroundResource(R.drawable.guide2); rl3.setBackgroundResource(R.drawable.guide3); _btnStart.setBackgroundResource(R.drawable.enter_start); }else{ Constants.language = "en"; rl1.setBackgroundResource(R.drawable.guide1_en); rl2.setBackgroundResource(R.drawable.guide2_en); rl3.setBackgroundResource(R.drawable.guide3_en); _btnStart.setBackgroundResource(R.drawable.enter_start_en); } view3.setOnTouchListener(this); // 实例化ViewPager _viewPager = (ViewPager) findViewById(R.id.viewpager); listViews = new ArrayList<View>(); // 实例化ViewPager适配器 _vpAdapter = new ViewPagerAdapter(listViews); // 实例化底部小点图片对象 pointImage0 = (ImageView) findViewById(R.id.page0); pointImage1 = (ImageView) findViewById(R.id.page1); pointImage2 = (ImageView) findViewById(R.id.page2); tv_skip = (TextView) findViewById(R.id.tv_skip); } private void initData() { // 设置监听 _viewPager.addOnPageChangeListener(new MyOnPageChangeListener()); // 设置适配器数据 _viewPager.setAdapter(_vpAdapter); // 将要分页显示的View装入数组中 listViews.add(view1); listViews.add(view2); listViews.add(view3); _vpAdapter.notifyDataSetChanged(); // 给开始按钮设置监听 _btnStart.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { startExperience(); } }); } public class MyOnPageChangeListener implements OnPageChangeListener { @Override public void onPageSelected(int position) { switch (position) { case 0: pointImage0.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.page_indicator_focused)); pointImage1.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.page_indicator_unfocused)); break; case 1: pointImage1.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.page_indicator_focused)); pointImage0.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.page_indicator_unfocused)); pointImage2.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.page_indicator_unfocused)); break; case 2: pointImage2.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.page_indicator_focused)); pointImage1.setImageDrawable(ContextCompat.getDrawable(context,R.drawable.page_indicator_unfocused)); break; } currIndex = position; } @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } } private void startExperience() { Intent mainIntent = new Intent(GuideViewActivity.this, Login.class); GuideViewActivity.this.startActivity(mainIntent); GuideViewActivity.this.finish(); } /** * 手指按下时的x y坐标 */ private int xDown = 0; private int yDown = 0; /** * 手指移动时的x y 坐标 */ private int xMove = 0; private int yMove = 0; // 触发移动事件的最短距离 private int touchSlop = 5; @Override public boolean onTouchEvent(MotionEvent event) { return false; } /** * 相应按钮点击事件 */ @Override public boolean onTouch(View v, MotionEvent ev) { switch (ev.getAction()) { case MotionEvent.ACTION_DOWN: xDown = (int) ev.getX(); yDown = (int) ev.getY(); break; case MotionEvent.ACTION_MOVE: xMove = (int) ev.getX(); yMove = (int) ev.getY(); int dx = xMove - xDown; int dy = yMove - yDown; // 判断是否是从右到左的滑动 if (xMove < xDown && Math.abs(dx) > touchSlop && Math.abs(dy) < touchSlop) { startExperience(); break; } break; } return true; } /** * 开启倒计时 */ /*private Timer timer; public void RunTimer() { try { if (timer != null) { timer.cancel(); timer = null; } if(timer == null){ timer = new java.util.Timer(); } timer.schedule(new TimerTask() { @Override public void run() { count--; if(count == 6 || count == 4 || count == 2 || count == 0){ Message msg = mHandler.obtainMessage(); msg.what = count; mHandler.sendMessage(msg); } } }, 10, 1000); } catch (Exception e) { } } public void stopTimer() { try { if (timer != null) { timer.cancel(); timer = null; } } catch (Exception e) { } }*/ }
GuideActivity
最新推荐文章于 2022-10-24 22:13:47 发布