小项目之---仿微信界面

效果图:

这里写图片描述

只专注滑屏效果和按钮点击界面转换以及listview的实现,界面比较糙,希望大神不要取笑哈!

代码解析:

1.主activity:

public class MainActivity extends FragmentActivity {
    private RadioButton mButtonweixin;
    private RadioButton mButtonaddress;
    private RadioButton mButtonfriend;
    private RadioButton mButtonsetting;
    private RadioGroup mRadioGroup;
    private MyFragmentAdapter myAdapter;
    private List<Fragment> mFragments;
    private ViewPager mViewPager;
    private Fragment1 fragment1 = new Fragment1();
    private Fragment2 fragment2 = new Fragment2();
    private Fragment3 fragment3 = new Fragment3();
    private Fragment4 fragment4 = new Fragment4();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mButtonweixin = (RadioButton) findViewById(R.id.buttonweixin);
        mButtonaddress = (RadioButton) findViewById(R.id.buttonaddress);
        mButtonfriend = (RadioButton) findViewById(R.id.buttonfriend);
        mButtonsetting = (RadioButton) findViewById(R.id.buttonsetting);
        mRadioGroup = (RadioGroup) findViewById(R.id.radiogroup);
        mViewPager = (ViewPager) findViewById(R.id.viewpager);
        // mButtonweixin.setChecked(true);
        mRadioGroup.check(R.id.buttonweixin);//设置默认选中的Radiobutton
        init();//对fragment集合进行初始化
        myAdapter = new MyFragmentAdapter(getSupportFragmentManager(),
                mFragments);
        mViewPager.setAdapter(myAdapter);
        // mRadioGroup添加点击事件
        mRadioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {

            @Override
            public void onCheckedChanged(RadioGroup arg0, int arg1) {// arg1即被点击的radiobutton
                // TODO Auto-generated method stub
                switch (arg1) {
                case R.id.buttonweixin:
                    mViewPager.setCurrentItem(0);// 设置按钮点击后,显示对应的的viewpager页面

                    break;
                case R.id.buttonaddress:
                    mViewPager.setCurrentItem(1);

                    break;
                case R.id.buttonfriend:
                    mViewPager.setCurrentItem(2);

                    break;
                case R.id.buttonsetting:
                    mViewPager.setCurrentItem(3);

                    break;

                default:
                    break;
                }
            }
        });

        // 为viewpager添加事件,是界面滑动改变显示界面后,按钮也响应改变
        // 由于v4包比较旧,用setOnPageChangeListener,新的版本用addOnPageChangeListener
        mViewPager.setOnPageChangeListener(new OnPageChangeListener() {

            @Override
            public void onPageSelected(int arg0) {
                // TODO Auto-generated method stub
                switch (arg0) {
                case 0:
                    mRadioGroup.check(R.id.buttonweixin);

                    break;
                case 1:
                    mRadioGroup.check(R.id.buttonaddress);

                    break;
                case 2:
                    mRadioGroup.check(R.id.buttonfriend);

                    break;
                case 3:
                    mRadioGroup.check(R.id.buttonsetting);

                    break;

                default:
                    break;
                }

            }

            @Override
            public void onPageScrolled(int arg0, float arg1, int arg2) {
                // TODO Auto-generated method stub
            }

            @Override
            public void onPageScrollStateChanged(int arg0) {
                // TODO Auto-generated method stub

            }
        });

    }

    private void init() {
        // TODO Auto-generated method stub
        mFragments = new ArrayList<Fragment>();
        mFragments.add(fragment1);
        mFragments.add(fragment2);
        mFragments.add(fragment3);
        mFragments.add(fragment4);
    }

}


界面中下方设置四个按钮,用于转换界面,界面用fragment来写,且界面采用滑动的方式(利用ViewPager),可以看到上面的效果。ViewPager这里不再详细介绍,详细见之前的文章:
实现屏幕切换、滑动-ViewPager详解(一)之——–基础知识
实现屏幕切换、滑动-ViewPager详解(二)之——–PagerTitleStrip与PagerTabStrip添加标题栏
实现屏幕切换、滑动-ViewPager详解(三)之——–使用Fragment实现ViewPager滑动

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值