Android学习-Fragment+TabHost安卓基本框架学习(Dota2篇)

14年10月写了个关于DOTA2想法的Demo,一部分是自己总结一些开发知识,一部分是对这样的创意进行实践。可惜事与愿违,未能坚持下来,又不想所做劳动丢之一弃,特此写此博客拿出来供新入行的同仁学习和借鉴,不足之处很多,废话不多说,上图

 

引导页-自定义的Viewpager

2个主要文件,自定义ViewPagerCompat和自定义切换动画RotateDownPageTransformer

首先布局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"
    >
    
    <com.Do2.android.widget.ViewPagerCompat
        android:id="@+id/id_viewpager"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />
    
</RelativeLayout>

然后在引导页中主要逻辑代码为

mViewPager = (ViewPagerCompat) findViewById(R.id.id_viewpager);
mViewPager.setPageTransformer(true, new RotateDownPageTransformer());
mViewPager.setAdapter(new PagerAdapter()
{
	@Override
	public Object instantiateItem(ViewGroup container, int position)
	{                     
                container.addView(mViews.get(position));
		return mViews.get(position);
	}

	@Override
	public void destroyItem(ViewGroup container, int position,
					Object object)
	{
		container.removeView(mViews.get(position));
	}

	@Override
	public boolean isViewFromObject(View view, Object object)
	{
		return view == object;
	}
	@Override
	public int getCount()
	{
		return mViews.size();
	}
});

同样该ViewpagerCompat可以设置setOnPageChangeListener监听切换事件,在onPageSelected中进行切换后的逻辑处理。


上拉加载下拉更多Listview

滑动该listview会有滑动动画,头部下拉形式可以更改,加载更多也可以更改

主要文件8个,分别在zrc.util和zrc.widget文件夹中,在attrs中有个样式设置文件

首先还是布局文件,引用该自定义Listview

<zrc.widget.ZrcListView
     android:id="@+id/chat_listview"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
     android:layout_marginTop="-2dp"
     >
</zrc.widget.ZrcListView>
然后初始化该自定义Listview

private void initListView(){
        handler = new Handler();
	// 设置默认偏移量,主要用于实现透明标题栏功能。(可选)
	float density = getActivity().getResources().getDisplayMetrics().density;
	listView.setFirstTopOffset((int) (50 * density));

	// 设置下拉刷新的样式(可选,但如果没有Header则无法下拉刷新)
	SimpleHeader header = new SimpleHeader(getActivity());
	header.setTextColor(getResources().getColor(R.color.black_f2));
	header.setCircleColor(getResources().getColor(R.color.black_f2));
	listView.setHeadable(header);

	// 设置加载更多的样式(可选)
	SimpleFooter footer = new SimpleFooter(getActivity());
	footer.setCircleColor(0xff33bbee);
	listView.setFootable(footer);

	// 设置列表项出现动画(可选)
	listView.setItemAnimForTopIn(R.anim.topitem_in);
	listView.setItemAnimForBottomIn(R.anim.bottomitem_in);

	// 下拉刷新事件回调(可选)
	listView.setOnRefreshStartListener(new OnStartListener() {
	        @Override
	        public void onStart() {
	            refresh();
	        }
	});

	// 加载更多事件回调(可选)
	listView.setOnLoadMoreStartListener(new OnStartListener() {
	         @Override
	         public void onStart() {
	            loadMore();
	         }
	});
	        
}
然后设置适配器

private void init(){
        initListView();
        adapter = new ChatUserAdapter(getActivity(), requestChatResult());
        listView.setAdapter(adapter);
}
其他模块


不足之处非常多,虚心接受批评- -。


下载地址: 

https://github.com/hOlMoo/Dota2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值