android项目智慧北京开发完整步骤:第一天

去掉标题,全屏

动画

rlRoot= (RelativeLayout)findViewById(R.id.rl_root);

RotateAnimation animRotate=newRotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

animRotate.setDuration(1000);

animRotate.setFillAfter(true);//保持状体

ScaleAnimation animScale=newScaleAnimation(0, 1, 0, 1, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f);

animScale.setDuration(1000);

animScale.setFillAfter(true);

AlphaAnimation animAlpha=newAlphaAnimation(0, 1);

animAlpha.setDuration(1000);

animAlpha.setFillAfter(true);

AnimationSet animSet=newAnimationSet(true);

animSet.addAnimation(animRotate);

animSet.addAnimation(animAlpha);

animSet.addAnimation(animScale);

rlRoot.startAnimation(animSet);

animSet.setAnimationListener(newAnimationListener() {

@Override

publicvoidonAnimationStart(Animation animation) {

}

@Override

publicvoidonAnimationRepeat(Animation animation) {

}

@Override

publicvoidonAnimationEnd(Animation animation) {

startActivity(newIntent(getApplicationContext(), MainActivity.class));

finish();

}

});

库文件

打包不需要管库文件,自动打到项目里

引导页(ViewPage)

xml文件

拷贝全路径

关联viewPage源码

先remove

Addjar

勾上

源码路径

E:\adt-bundle-windows-x86\sdk\extras\android\support\v4

java代码

privateint[]mImageIds=newint[]{R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3};

privateViewPagermViewPage;

privateArrayListmImageViewList;

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_guide);

mViewPage= (ViewPager) findViewById(R.id.vp_pager);

mViewPage.setAdapter(newMyAdapter());

mImageViewList=newArrayList();

for(inti = 0; i

ImageView view=newImageView(this);

view.setBackgroundResource(mImageIds[i]);

mImageViewList.add(view);

}

}

classMyAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmImageIds.length;

}

@Override

publicbooleanisViewFromObject(View view, Object object) {

returnview==object;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

//ImageView view=new ImageView(getApplicationContext());

//view.setBackgroundResource(mImageIds[position]);

ImageView view=mImageViewList.get(position);

container.addView(view);

returnview;

}

@Override

publicvoiddestroyItem(ViewGroup container,intposition, Object object) {

container.removeView((View)object);

}

}

加点,加按钮

java代码

privateViewPagermViewPage;

privateLinearLayoutllContainer;

privateImageViewivRedPoint;

privateButtonbtStart;

privateint[]mImageIds=newint[]{R.drawable.guide_1,R.drawable.guide_2,R.drawable.guide_3};

privateArrayListmImageViewList;

privateintmPointWith;//两个小圆点的宽度

@Override

protectedvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_guide);

mViewPage= (ViewPager) findViewById(R.id.vp_pager);

llContainer=(LinearLayout)findViewById(R.id.ll_container);

ivRedPoint=(ImageView)findViewById(R.id.iv_red_point);

btStart=(Button)findViewById(R.id.bt_start);

btStart.setOnClickListener(this);

mImageViewList=newArrayList();

for(inti = 0; i

ImageView view=newImageView(this);

view.setBackgroundResource(mImageIds[i]);

mImageViewList.add(view);

ImageView pointView=newImageView(this);

pointView.setImageResource(R.drawable.shape_circle_default);

LinearLayout.LayoutParams params=newLinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.WRAP_CONTENT);

if(i>0){

params.leftMargin=10;//从第二个点开始设置边距

}

pointView.setLayoutParams(params);

llContainer.addView(pointView);

}

mViewPage.setAdapter(newMyAdapter());

//页面绘制结束后,计算两个圆点的距离

ivRedPoint.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListener() {

//layout方法执行结束之后(位置确定)

@Override

publicvoidonGlobalLayout() {

//移除监听

ivRedPoint.getViewTreeObserver().removeGlobalOnLayoutListener(this);

mPointWith=llContainer.getChildAt(1).getLeft()-llContainer.getChildAt(0).getLeft();

}

});

//页面滑动过程中回调

mViewPage.setOnPageChangeListener(newOnPageChangeListener() {

@Override

publicvoidonPageSelected(intposition) {

if(position==mImageIds.length-1){

btStart.setVisibility(View.VISIBLE);

}else

btStart.setVisibility(View.INVISIBLE);

}

@Override

publicvoidonPageScrolled(intposition,floatpositionOffset,

intpositionOffsetPixels) {

//计算当前小红点的左边距

intleftMargin=(int)(mPointWith*positionOffset+position*mPointWith);

//修改小红点的左边距

RelativeLayout.LayoutParams params=(LayoutParams)ivRedPoint.getLayoutParams();

params.leftMargin=leftMargin;

ivRedPoint.setLayoutParams(params);

}

@Override

publicvoidonPageScrollStateChanged(intstate) {

}

});

}

classMyAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmImageIds.length;

}

@Override

publicbooleanisViewFromObject(View view, Object object) {

returnview==object;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

//ImageView view=new ImageView(getApplicationContext());

//view.setBackgroundResource(mImageIds[position]);

ImageView view=mImageViewList.get(position);

container.addView(view);

returnview;

}

@Override

publicvoiddestroyItem(ViewGroup container,intposition, Object object) {

container.removeView((View)object);

}

}

@Override

publicvoidonClick(View v) {

//TODOAuto-generated method stub

switch(v.getId()) {

caseR.id.bt_start:

//PrefUtils.putBoolean("is_guide_show",true, this);

startActivity(newIntent(this, MainActivity.class));

finish();

break;

default:

break;

}

}

Xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:id="@+id/vp_pager"

android:layout_width="match_parent"

android:layout_height="match_parent"

/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="25dp"

>

android:id="@+id/iv_red_point"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:src="@drawable/shape_circle_selected"

/>

android:id="@+id/ll_container"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

android:id="@+id/bt_start"

android:visibility="invisible"

android:text="开始体验"

android:background="@drawable/btn_guide_selector"

android:textColor="@color/text_guide_selector"

android:paddingLeft="5dp"

android:paddingRight="5dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_alignParentBottom="true"

android:layout_centerHorizontal="true"

android:layout_marginBottom="60dp"

>

点击样式,状态选择器

SlidingMenu

java代码

/*

*开发流程:

* 1.引入SlidingMenu库

* 2.Activity继承自SlidingFragmentActivity

* 3.onCreate改为public

* 4.setBehindContentView,设置基本侧边栏效果

* 5.获取SlidingMenu,深层次定制

* */

publicclassMainActivityextendsSlidingFragmentActivity{

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setBehindContentView(R.layout.left_menu);

SlidingMenu slidingMenu=getSlidingMenu();

//全屏触摸

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

slidingMenu.setMode(SlidingMenu.LEFT_RIGHT);

slidingMenu.setSecondaryMenu(R.layout.right_menu);

//修改侧边栏宽度

slidingMenu.setBehindOffset(100);//屏幕预留100个像素宽度

}

}

Fragement

继承自v4的,app是4.0后的版本,v4是任何版本都可以用

生命周期

Left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f00"

android:id="@+id/fl_left_menu">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是侧边栏"/>

Activity_main.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/fl_content">

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

LeftMenuFragement类

publicclassLeftMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

MainActivity类

publicclassMainActivityextendsSlidingFragmentActivity {

StringTAG_LEFT_MENU="TAG_LEFT_MENU";

StringTAG_CONTENT="TAG_CONTENT";

@Override

publicvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

requestWindowFeature(Window.FEATURE_NO_TITLE);

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setBehindContentView(R.layout.left_menu);

SlidingMenu slidingMenu=getSlidingMenu();

//全屏触摸

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

//修改侧边栏宽度

slidingMenu.setBehindOffset(100);//屏幕预留100个像素宽度

initFragement();

}

privatevoidinitFragement() {

FragmentManager fm=getSupportFragmentManager();

FragmentTransaction transaction=fm.beginTransaction();//开启事务

//将帧布局替换为对应的Fragement

transaction.replace(R.id.fl_left_menu,newLeftMenuFragement(),TAG_LEFT_MENU);

transaction.replace(R.id.fl_content,newContentMenuFragement(),TAG_CONTENT);

transaction.commit();//提交事务

}

}

fragement_content.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement侧边栏"/>

fragement_left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement主页面"/>

效果

主页面底部菜单按钮 xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

/>

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/bottom_tab_bg"

android:orientation="horizontal"

android:gravity="center">

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/btn_home_selector"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

样式

"ButtonTabStyle">

"android:layout_width">wrap_content

"android:layout_height">wrap_content

"android:gravity">center

"android:layout_weight">1

"android:padding">5dp

"android:button">@null

"android:textColor">@color/text_button_tab_selector

XUtil

导入jar包

使用

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

ContentFragement页面

五个标签页的基类

/**

*五个标签页的基类

*@authorliangjun

*

*/

publicabstractclassBasePage {

publicActivitymActivity;

publicViewmRootView;

publicImageButtonbtnMenu;

publicFrameLayoutflContent;

publicTextViewtvTitle;

publicBasePage(Activity activity){

mActivity=activity;

initView();

}

publicvoidinitView() {

mRootView= View.inflate(mActivity, R.layout.base_paper,null);

tvTitle= (TextView)mRootView.findViewById(R.id.tv_title);

btnMenu=(ImageButton)mRootView.findViewById(R.id.btn_menu);

flContent=(FrameLayout)mRootView.findViewById(R.id.fl_content2);

}

/**

*初始化数据

*/

publicabstractvoidinitData();

}

举例首页

publicclassHomePagerextendsBasePage {

publicHomePager(Activity activity) {

super(activity);

}

@Override

publicvoidinitData() {

tvTitle.setText("智慧上海");

TextView view=newTextView(mActivity);

view.setText("首页");

view.setTextColor(Color.RED);

view.setTextSize(22);

view.setGravity(Gravity.CENTER);

flContent.addView(view);

}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

privateArrayListmPagers;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

@Override

publicvoidinitData() {

super.initData();

//初始化5个标签页面

mPagers=newArrayList();

mPagers.add(newHomePager(mActivity));

mPagers.add(newNewCenterPager(mActivity));

mPagers.add(newSmartServicePager(mActivity));

mPagers.add(newGovAffairsPager(mActivity));

mPagers.add(newSettingPager(mActivity));

mVierPager.setAdapter(newContentAdapter());

}

classContentAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmPagers.size();

}

@Override

publicbooleanisViewFromObject(View arg0, Object arg1) {

returnarg0==arg1;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

BasePage pager=mPagers.get(position);

container.addView(pager.mRootView);//将页面添加到容器中

pager.initData();//初始化数据

returnpager.mRootView;

}

}

}

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

总结布局框架

继承自v4的,app是4.0后的版本,v4是任何版本都可以用

生命周期

Left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f00"

android:id="@+id/fl_left_menu">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是侧边栏"/>

Activity_main.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:id="@+id/fl_content">

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

LeftMenuFragement类

publicclassLeftMenuFragementextendsBaseFragement {

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_left_menu,null);

returnview;

}

}

MainActivity类

publicclassMainActivityextendsSlidingFragmentActivity {

StringTAG_LEFT_MENU="TAG_LEFT_MENU";

StringTAG_CONTENT="TAG_CONTENT";

@Override

publicvoidonCreate(Bundle savedInstanceState) {

//TODOAuto-generated method stub

requestWindowFeature(Window.FEATURE_NO_TITLE);

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

setBehindContentView(R.layout.left_menu);

SlidingMenu slidingMenu=getSlidingMenu();

//全屏触摸

slidingMenu.setTouchModeAbove(SlidingMenu.TOUCHMODE_FULLSCREEN);

//修改侧边栏宽度

slidingMenu.setBehindOffset(100);//屏幕预留100个像素宽度

initFragement();

}

privatevoidinitFragement() {

FragmentManager fm=getSupportFragmentManager();

FragmentTransaction transaction=fm.beginTransaction();//开启事务

//将帧布局替换为对应的Fragement

transaction.replace(R.id.fl_left_menu,newLeftMenuFragement(),TAG_LEFT_MENU);

transaction.replace(R.id.fl_content,newContentMenuFragement(),TAG_CONTENT);

transaction.commit();//提交事务

}

}

fragement_content.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement侧边栏"/>

fragement_left_menu.xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我是Fragement主页面"/>

效果

主页面底部菜单按钮 xml

"1.0"encoding="utf-8"?>

"http://schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:background="#f90"

android:orientation="vertical">

android:layout_width="match_parent"

android:layout_height="0dp"

android:layout_weight="1"

/>

android:id="@+id/textView1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:background="@drawable/bottom_tab_bg"

android:orientation="horizontal"

android:gravity="center">

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/btn_home_selector"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

style="@style/ButtonTabStyle"

android:drawableTop="@drawable/home"

android:text="首页"

/>

样式

"ButtonTabStyle">

"android:layout_width">wrap_content

"android:layout_height">wrap_content

"android:gravity">center

"android:layout_weight">1

"android:padding">5dp

"android:button">@null

"android:textColor">@color/text_button_tab_selector

XUtil

导入jar包

使用

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

ContentFragement页面

五个标签页的基类

/**

*五个标签页的基类

*@authorliangjun

*

*/

publicabstractclassBasePage {

publicActivitymActivity;

publicViewmRootView;

publicImageButtonbtnMenu;

publicFrameLayoutflContent;

publicTextViewtvTitle;

publicBasePage(Activity activity){

mActivity=activity;

initView();

}

publicvoidinitView() {

mRootView= View.inflate(mActivity, R.layout.base_paper,null);

tvTitle= (TextView)mRootView.findViewById(R.id.tv_title);

btnMenu=(ImageButton)mRootView.findViewById(R.id.btn_menu);

flContent=(FrameLayout)mRootView.findViewById(R.id.fl_content2);

}

/**

*初始化数据

*/

publicabstractvoidinitData();

}

举例首页

publicclassHomePagerextendsBasePage {

publicHomePager(Activity activity) {

super(activity);

}

@Override

publicvoidinitData() {

tvTitle.setText("智慧上海");

TextView view=newTextView(mActivity);

view.setText("首页");

view.setTextColor(Color.RED);

view.setTextSize(22);

view.setGravity(Gravity.CENTER);

flContent.addView(view);

}

}

ContentMenuFragement类

publicclassContentMenuFragementextendsBaseFragement {

@ViewInject(R.id.vp_pager)

privateViewPagermVierPager;

privateArrayListmPagers;

@Override

publicView initView() {

View view=View.inflate(mActivity, R.layout.fragement_content,null);

ViewUtils.inject(this,view);//注入view和事件

returnview;

}

@Override

publicvoidinitData() {

super.initData();

//初始化5个标签页面

mPagers=newArrayList();

mPagers.add(newHomePager(mActivity));

mPagers.add(newNewCenterPager(mActivity));

mPagers.add(newSmartServicePager(mActivity));

mPagers.add(newGovAffairsPager(mActivity));

mPagers.add(newSettingPager(mActivity));

mVierPager.setAdapter(newContentAdapter());

}

classContentAdapterextendsPagerAdapter{

@Override

publicintgetCount() {

returnmPagers.size();

}

@Override

publicbooleanisViewFromObject(View arg0, Object arg1) {

returnarg0==arg1;

}

@Override

publicObject instantiateItem(ViewGroup container,intposition) {

BasePage pager=mPagers.get(position);

container.addView(pager.mRootView);//将页面添加到容器中

pager.initData();//初始化数据

returnpager.mRootView;

}

}

}

BaseFragement类

/**

* 1.初始化布局initView

* 2.初始化initData

*@authorliangjun

*

*/

publicabstractclassBaseFragementextendsFragment {

publicActivitymActivity;

//Fragement被创建

@Override

publicvoidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

mActivity= getActivity();

}

//初始化Fragement布局

@Override

publicView onCreateView(LayoutInflater inflater, ViewGroup container,

Bundle savedInstanceState) {

//TODOAuto-generated method stub

View view=initView();

returnview;

}

//activity创建结束

@Override

publicvoidonActivityCreated(Bundle savedInstanceState) {

super.onActivityCreated(savedInstanceState);

initData();

}

/**

*初始化布局,子类必须实现

*@return

*/

publicabstractView initView();

/**

*初始化数据,子类可以不实现

*/

publicvoidinitData(){}

}

总结布局框架

时间: 2024-10-08 09:10:25

android项目智慧北京开发完整步骤:第一天的相关文章

总结android项目的基本开发步骤(转帖)

总结android项目的基本开发步骤(转帖) 做了几个android企业应用项目后,总结了项目的基本开发步骤,希望能够交流.一 应用规划:    ※确定功能.    ※必须的界面及界面跳转的流程.    ※需要的数据及数据的来源及格式.    ※是否需要服务端支持.    ※是否需要本地数据库支持.    ※是否需要特殊权限.    ※是否需要后台服务.二 架构设计:    ※分层.    ※网络连接.    ※数据处理-xml.domain.    ※封装Activity.三 界面设计:   

Android企业级应用程序开发完整训练:精通Android商业级开发最佳实践的24堂课

从企业级商业实战的角度入手,24小时内通过23个动手实战案例,循序渐进的对Android商业级别的应用程序开发要点各个击破,依托于在多年的Android(6款完整的硬件产品和超过20款应用软件)开发和企业级培训经验(超过150期的次Android的企业内训和公开课),旨在在实务的基础之上帮助你完成任何复杂程序的高质量Android应用程序开发,让Android开发跟上想象的速度.最后,通过ActivityManagerService揭秘Android应用程序一切行为背后的核心根源,让你从此开发应

ReportViewer动态报表开发完整步骤

在朋友的邀请下,给他们公司开发一个简单的公司门户网站.本人都多年没有写ASP.NET C#代码了.这几年都在做数据库和商务智能这块.反正朋友说网站不难,就个简单的展现网站,于是就答应了,找了一天到他们公司去听具体的开发需求,听了需求后,觉得难道不是很大,主要的难点在一个在线租赁平台.朋友的公司是做检测设备租赁的.于是就答应了.承诺在1个月内做好.主要是周末和晚上做. 所有的框架和页面展示功能都还可以,很快就开发好了.但是当在开发打印报表的时候,遇到了就障碍,主要是自己以前做的大多是C/S的开发.

IDEA导入eclipse项目并部署运行完整步骤(转发)

首先说明一下:idea里的project相当于eclipse里的workspace,而idea里的modules相当于eclipse里的project 1.File-->Import Project  在弹出的对话框里选择要导入的项目 2.选择ok,在弹出的对话框选择Import Project from External Model,并选择下面的eclipse 3.点击next,一直点击到finish就行. 4.加载成功后会出现一些错误 点击fix it 上面2个取消选择就可以了 5.点击项目

[Android] 基于 Linux 命令行构建 Android 应用(一):关于 Android 项目

关于 Android 项目 项目是保存源代码和资源文件的容器. 谷歌提供的 Android SDK 工具只能对具有固定目录结构的项目进行编译和打包.因此强烈建议使用 Eclipse + ADT 或者 android 命令创建 Android 项目. 你可以使用 Eclipse + ADT 创建三种项目,它们主要结构相同但功用不同,分别是 Android Projects.Test Projects 和 Library Projects.本文我们主要关注 Android Projects. 一个

10分钟带你了解Android项目构建流程,助你顺利通过面试!

构建过程 项目的构建: 当我们打开一个项目,我们可以看到的是我们写的Java Code文件or Other JVM Code,资源文件,Build配置文件,但是通过run the project,我们就可以得到一个在我们的Andoid设备上可以运行的Apk,上线应用市场,还需要我们对其进行签名处理,来确保我们App的唯一性和安全性.整个过程就是所谓的项目构建. 如何实现整个构建的过程,对于每一个构建的步骤,都需要相应的功能模块来进行,比如Java Code编译,如何打成dex包等等,而这Andr

Eclipse打开Android项目报Parsing Data for android-21 failed错误的解决办法(转载)

转载:http://segmentfault.com/blog/hongliang/1190000000739285 今天手贱,用android命令打开SDK Manager下载了最新的Android 5.0 SDK: 结果用Eclipse打开cocos2d-x的proj.android项目就各种报错,第一个典型的错误是启动Eclipse后Eclipse自己就报Parsing Data for android-21 failed错误,没理会它,继续打开项目,发现libcocos2dx项目无法生成

junit测试Android项目

关于junit测试Android项目方法主要有一下步骤: 1.导入junit4的jar包 在工厂中Build Path中Add Library->JUnit->JUnit4->Finish 2.编写测试代码 首先new一个JUnit Test Case,关联要测试的类,然后编写测试代码,具体可以参照, 在Eclipse中使用JUnit4进行单元测试(初级篇)(http://blog.csdn.net/andycpp/article/details/1327147) 在Eclipse中使用

【React Native开发】React Native移植原生Android项目

转载请标明出处: http://blog.csdn.net/developer_jiangqq/article/details/50519677 本文出自:[江清清的博客] (一)前言 [好消息]个人网站已经上线运行,后面博客以及技术干货等精彩文章会同步更新,请大家关注收藏:http://www.lcode.org 前三节课程我们已经对于React Native For Android的环境搭建,IDE安装配置以及应用运行,调试相关的知识点做了讲解.今天我们来讲一个非常有用的知识点.移植我们已有