仿照网易云音乐界面 ,页面UI实现的听不错的,学习ui的朋友可以下载下来研究研究,android特效更多学习。
项目大体框架,由ViewPager和TabContentPagerAdapter实现顶部的左右滑动切换view.
右侧滑动DrawerLayout 实现左右滑动。
项目大体实现:
easy.activity;
importandroid.app.ActionBar;
importandroid.app.FragmentTransaction;
importandroid.content.res.TypedArray;
importandroid.graphics.Color;
importandroid.os.Bundle;
importandroid.support.v4.app.FragmentActivity;
importandroid.support.v4.view.ViewPager;
importandroid.support.v4.widget.DrawerLayout;
importandroid.util.Log;
importandroid.view.Gravity;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.widget.ImageView;
importjava.lang.reflect.Method;
easy.R;
easy.adapter.TabContentPagerAdapter;
publicclassMainActivityextendsFragmentActivity{
privateViewPagermViewPager;
privateDrawerLayoutslideMenu;
privateActionBaractionBar;
privateTabContentPagerAdaptermPagerAdapter;
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
actionBar=getActionBar();
mViewPager=(ViewPager)findViewById(R.id.view_pager);
slideMenu=(DrawerLayout)findViewById(R.id.slide_menu);
slideMenu.setScrimColor(Color.argb(50,0,0,0));
mPagerAdapter=newTabContentPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mPagerAdapter);
mViewPager.setOnPageChangeListener(newViewPager.SimpleOnPageChangeListener(){
@Override
publicvoidonPageSelected(intposition){
actionBar.setSelectedNavigationItem(position);
}
});
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListenertabListener=newActionBar.TabListener(){
@Override
publicvoidonTabSelected(ActionBar.Tabtab,FragmentTransactionft){
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
publicvoidonTabUnselected(ActionBar.Tabtab,FragmentTransactionft){
}
@Override
publicvoidonTabReselected(ActionBar.Tabtab,FragmentTransactionft){
}
};
TypedArraytabIconIds=getResources().obtainTypedArray(R.array.actionbar_icons);
for(inti=0;i
Viewview=getLayoutInflater().inflate(R.layout.actionbar_tab,null);
ImageViewtabIcon=(ImageView)view.findViewById(R.id.actionbar_tab_icon);
tabIcon.setImageResource(tabIconIds.getResourceId(i,-1));
actionBar.addTab(actionBar.newTab().setCustomView(view).setTabListener(tabListener));
}
enableEmbeddedTabs(actionBar);
}
/**
*在actionbar中内嵌Tab
*
*@paramactionBaractionbar
*/
privatevoidenableEmbeddedTabs(android.app.ActionBaractionBar){
try{
MethodsetHasEmbeddedTabsMethod=actionBar.getClass().getDeclaredMethod("setHasEmbeddedTabs",boolean.class);
setHasEmbeddedTabsMethod.setAccessible(true);
setHasEmbeddedTabsMethod.invoke(actionBar,true);
}catch(Exceptione){
Log.v("enableEmbeddedTabs",e.getMessage().toString());
}
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
getMenuInflater().inflate(R.menu.menu_main,menu);
returntrue;
}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
intid=item.getItemId();
if(id==R.id.action_search){
//TODO:-07-25搜索界面
}elseif(id==R.id.action_menu){
//TODO:-07-25菜单选择
if(slideMenu.isDrawerOpen(Gravity.RIGHT)){
slideMenu.closeDrawer(Gravity.RIGHT);
}else{
slideMenu.openDrawer(Gravity.RIGHT);
}
}
returntrue;
}
}
//
easy.activity;
importandroid.annotation.TargetApi;
importandroid.app.ActionBar;
importandroid.os.Build;
importandroid.os.Bundle;
importandroid.support.v4.app.Fragment;
importandroid.support.v4.app.FragmentActivity;
importandroid.support.v4.app.FragmentTransaction;
importandroid.view.Menu;
importandroid.view.MenuItem;
importandroid.view.View;
importandroid.widget.FrameLayout;
easy.R;
easy.fragment.discover.fm.CoverFragment;
easy.fragment.discover.fm.LyricFragment;
/**
*Createdbyalex.leeon-07-29.
*/
publicclassPersonalFMActivityextendsFragmentActivity{
privateActionBaractionBar;
privateFragmentfgTo;
privateFragmentfgCover;
privateFragmentfgLyric;
privatebooleanfgFlag=false;
privateFrameLayoutframeContainer;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_personal_fm);
actionBar=getActionBar();
actionBar.setTitle("私人FM");
actionBar.setDisplayShowTitleEnabled(true);
actionBar.setDisplayUseLogoEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setLogo(R.drawable.actionbar_logo);
actionBar.setHomeAsUpIndicator(R.drawable.rdi_icn_arr);
if(fgCover==null){
fgCover=newCoverFragment();
}
if(!fgCover.isAdded()){
getSupportFragmentManager().beginTransaction().add(R.id.frame_fm_container,fgCover,CoverFragment.class.getSimpleName()).commit();
}
fgTo=fgCover;
frameContainer=(FrameLayout)findViewById(R.id.frame_fm_container);
frameContainer.setOnClickListener(newView.OnClickListener(){
@Override
publicvoidonClick(Viewv){
if(fgFlag){
if(fgCover==null){
fgCover=newCoverFragment();
}
switchFragment(fgTo,fgCover);
}else{
if(fgLyric==null){
fgLyric=newLyricFragment();
}
switchFragment(fgTo,fgLyric);
}
fgFlag=!fgFlag;
}
});
}
@Override
publicbooleanonCreateOptionsMenu(Menumenu){
getMenuInflater().inflate(R.menu.menu_personal_fm,menu);
returntrue;
}
@Override
publicbooleanonOptionsItemSelected(MenuItemitem){
intid=item.getItemId();
switch(id){
caseandroid.R.id.home:
finish();
break;
}
returntrue;
}
publicvoidswitchFragment(Fragmentfrom,Fragmentto){
if(from==null||to==null||from==to){
return;
}
FragmentTransactiontransaction=getSupportFragmentManager().beginTransaction();
transaction.setCustomAnimations(R.anim.abc_fade_in,R.anim.abc_fade_out);
if(!to.isAdded()){
//隐藏当前的fragment,add下一个到Activity中
transaction.hide(from).add(R.id.frame_fm_container,to).commit();
}else{
//隐藏当前的fragment,显示下一个
transaction.hide(from).show(to).commit();
}
fgTo=to;
}
}
文章来源《IT蓝豹》android特效技术分享网站
如果觉得《java4android网易云_仿照网易云音乐界面 android特效》对你有帮助,请点赞、收藏,并留下你的观点哦!