比较零碎的代码片段,主要讲述的是数据库的登录界面,以及页面的滑屏,以及一些有趣的动画效果. 若是你又足够的耐心.请细看 1.一个界面跳转至另外一个界面的延时效果是如何实现?(演示为1s的延时,参数单位是ms) new Handler().postDelayed(new Runnable(){ @Override public void run(){ Intent intent = new Intent (Activity1.this,Activity2.class); startActivity(intent); Activity1.this.finish(); } }, 1000); 2.简单的跳转至一个网页 .Uri uri = Uri.parse("http://my.csdn.net/"); Intent intent = new Intent(Intent.ACTION_VIEW, uri); startActivity(intent); 3.简单Dialog的创建 new AlertDialog.Builder(RegisterActivity.this) .setIcon(getResources().getDrawable(R.drawable.login_error_icon)) .setTitle("注册错误") .setMessage("微信帐号或者密码不能为空,\n请输入后再登录!") .create().show(); 4.数据库的创建以及用户登录依据数据库数据的检测 . MyDatabaseHelper myDatabaseHelper = = new MyDatabaseHelper(this, "weixin.db", null, 1); . SQLiteDatabase database = myDatabaseHelper.getWritableDatabase(); . ContentValues values = new ContentValues();// 和hash表类似,存储数据,键值对形式 values.put("username", mUser.getText().toString()); values.put("password", mPassword.getText().toString()); database.insert("user", null, values); . 下面贴了一些检测的代码 . SQLiteDatabase database = myDatabaseHelper.getWritableDatabase();// 打开数据库的连接 String sql = "select * from user where username=? and password=?"; Cursor cursor = database.rawQuery(sql, new String[] { mUser.getText().toString(), mPassword.getText().toString() }); if (cursor.moveToFirst() == true) { cursor.close(); Intent intent = new Intent(Login.this, LoadingActivity.class); startActivity(intent); Toast.makeText(Login.this, "登录成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(Login.this, "没找到相对应的帐号密码", Toast.LENGTH_SHORT).show(); } 5.无限循环式的ProgressBar .style="?android:attr/progressBarStyleLarge" 6.ViewPager的使用案例 .使用样式如下图 . .这类图有n个,如何使用ViewPage进行设置views[i]--代码如下 .private ViewPager mViewPager; .private ImageView mPage0|1|2|3|4|5 ; .private int currIndex = 0; .onCreat方法中的主要操作是ViewPager的设置适配器(适配器的配置完成了ViewPager本身的view的add) .//将要分页显示的View装入数组中 LayoutInflater mLi = LayoutInflater.from(this); View view1 = mLi.inflate(R.layout.whats1, null); View view2 = mLi.inflate(R.layout.whats2, null); View view3 = mLi.inflate(R.layout.whats3, null); View view4 = mLi.inflate(R.layout.whats4, null); View view5 = mLi.inflate(R.layout.whats5, null); View view6 = mLi.inflate(R.layout.whats6, null); //每个页面的view数据 final ArrayList<View> views = new ArrayList<View>(); views.add(view1); views.add(view2); views.add(view3); views.add(view4); views.add(view5); views.add(view6); //填充ViewPager的数据适配器 PagerAdapter mPagerAdapter = new PagerAdapter() { @Override public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public int getCount() { return views.size(); } @Override public void destroyItem(View container, int position, Object object) { ((ViewPager)container).removeView(views.get(position)); } @Override public Object instantiateItem(View container, int position) { ((ViewPager)container).addView(views.get(position)); return views.get(position); } }; mViewPager.setAdapter(mPagerAdapter); . .------图上的一些点其实是ImageView,在进行Page的改变监听的时候会进行image的改变,在本文中就不贴出来了 .若是有小伙伴想研究这个ViewPager,可以阅览(待定) 7.实现界面的裂开,进入下一个界面的动画效果 .效果图如下 . .这个动画效果主要是靠AnimationSet来实现 .实现代码如下 .mLeft = (ImageView)findViewById(R.id.imageLeft); mRight = (ImageView)findViewById(R.id.imageRight); mText = (TextView)findViewById(R.id.anim_text); AnimationSet anim = new AnimationSet(true); TranslateAnimation mytranslateanim = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0f,Animation.RELATIVE_TO_SELF,-1f,Animation.RELATIVE_TO_SELF,0f,Animation.RELATIVE_TO_SELF,0f); mytranslateanim.setDuration(2000); anim.setStartOffset(800); anim.addAnimation(mytranslateanim); anim.setFillAfter(true); mLeft.startAnimation(anim); AnimationSet anim1 = new AnimationSet(true); TranslateAnimation mytranslateanim1 = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0f,Animation.RELATIVE_TO_SELF,+1f,Animation.RELATIVE_TO_SELF,0f,Animation.RELATIVE_TO_SELF,0f); mytranslateanim1.setDuration(1500); anim1.addAnimation(mytranslateanim1); anim1.setStartOffset(800); anim1.setFillAfter(true); mRight.startAnimation(anim1); AnimationSet anim2 = new AnimationSet(true); ScaleAnimation myscaleanim = new ScaleAnimation(1f,3f,1f,3f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); myscaleanim.setDuration(1000); AlphaAnimation myalphaanim = new AlphaAnimation(1,0.0001f); myalphaanim.setDuration(1500); anim2.addAnimation(myscaleanim); anim2.addAnimation(myalphaanim); anim2.setFillAfter(true); mText.startAnimation(anim2); new Handler().postDelayed(new Runnable(){ @Override public void run(){ Intent intent = new Intent (WhatsnewDoor.this,MainWeixin.class); startActivity(intent); WhatsnewDoor.this.finish(); } }, 2300); . .上述代码实现了图片的左右分开,延时2.3秒进入下一个界面 . 8.启动时不弹出所谓的软键盘 .getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN); . 9.获取系统服务之Window窗口服务 .Display currDisplay = getWindowManager().getDefaultDisplay();//获取屏幕当前分辨率 int displayWidth = currDisplay.getWidth(); int displayHeight = currDisplay.getHeight(); . 未完待续.....