Android体育场地预订APP(二)

这一篇主要讲应用第一个标签页获取后台数据及异步加载网络图片ImageLoader框架的使用。


首先,隔2s进入应用程序(既然要做就朝着商业应用来生气),然后通过Android系统提供的轻量级数据保存方式SharedPreferences保存用户名和密码。2s后进入下一Activity代

码如下:

      /**
	 * 欢迎界面,2秒钟后切换进入登录窗体
	 * @param 
	 * @return
	 */
	public void welcome(){
		new Thread(new Runnable() {
			
			@Override
			public void run() {
				// TODO Auto-generated method stub
				try {
					Thread.sleep(2000);//欢迎界面暂停2秒钟
					Message m = Message.obtain();
					logHandler.sendMessage(m);
				} catch (InterruptedException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				}
			}
		}).start();
	}
第一个标签页和侧滑布局如下:
<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#ffffff"
        android:orientation="vertical">

       <include layout="@layout/top" />
       
        <com.viewpagerindicator.TabPageIndicator
            android:id="@+id/indicator"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            />

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_width="fill_parent"
            android:layout_height="0dp"
            android:layout_weight="1" /> 
    </LinearLayout>
    
    <ListView 
        android:id="@+id/left_drawer"
        android:layout_width="300dp"
        android:layout_height="match_parent"
        android:layout_gravity="left"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"
        android:background="#ffffff"
        />

</android.support.v4.widget.DrawerLayout>

其中,top布局为标签页中包含自定义圆形头像的红色区域,其中圆形头像区域继承了ImageView,实现了自定义。

TabPageIndicator设置各个标签页的代码如下:

              FragmentPagerAdapter adapter = new TabPageIndicatorAdapter(getSupportFragmentManager());
		ViewPager pager = (ViewPager) findViewById(R.id.pager);
		pager.setAdapter(adapter);

		// 实例化TabPageIndicator然后设置ViewPager与之关联
		TabPageIndicator indicator = (TabPageIndicator) findViewById(R.id.indicator);
		indicator.setViewPager(pager);

		// 如果我们要对ViewPager设置监听,用indicator设置就行了
		indicator.setOnPageChangeListener(new OnPageChangeListener() {

			@Override
			public void onPageSelected(int arg0) {
				//Toast.makeText(getApplicationContext(), TITLE[arg0],Toast.LENGTH_SHORT).show();
			}

			@Override
			public void onPageScrolled(int arg0, float arg1, int arg2) {

			}

			@Override
			public void onPageScrollStateChanged(int arg0) {

			}
		});

        /**
	 * ViewPager适配器
	 * 
	 */
	class TabPageIndicatorAdapter extends FragmentPagerAdapter {
		public TabPageIndicatorAdapter(FragmentManager fm) {
			super(fm);
		}
		@Override
		public Fragment getItem(int position) {
			if(0 == position){
				// 新建一个Fragment来展示ViewPager item的内容,并传递参数
				One fragment = new One();
				return fragment;
			}else{
				// 再建一个Fragment来展示ViewPager item的内容,并传递参数
				Three fragment = new Three();
				return fragment;
			}
			
            
		}



第一个标签页的fragnent异步获取json对象AsyncTask<String, Void, List<Sports>>,其中加载图片用了ImageLoader框架,下载速度快,基本不会出现内存泄漏。

            ImageLoader loader = ImageLoader.getInstance();
		options = new DisplayImageOptions.Builder()
				.showImageOnLoading(R.drawable.ic_launcher)
				// 正在加载
				.showImageForEmptyUri(R.drawable.ic_launcher)
				// 空图片
				.showImageOnFail(R.drawable.ic_launcher)
				// 错误图片
				.cacheInMemory(true).cacheOnDisk(true).considerExifParams(true)
				.bitmapConfig(Bitmap.Config.RGB_565).build();
                ImageView imageView = (ImageView) view.findViewById(R.id.photo);//获取每个item中imageView的id
		String path = list.get(position).getImgPathString().toString();//BaseAdapter适配器填充数据到ListView,返回图片链接
		loader.displayImage(path, imageView, options);



  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值