java4android网易云_仿照网易云音乐界面 android特效
仿照网易云音乐界面 ,页面UI实现的听不错的,学习ui的朋友可以下载下来研究研究,android特效更多学习。
项目大体框架,由ViewPager和TabContentPagerAdapter实现顶部的左右滑动切换view.
右侧滑动DrawerLayout 实现左右滑动。
项目大体实现:
package me.xoder.neteasy.activity;
import android.app.ActionBar;
import android.app.FragmentTransaction;
import android.content.res.TypedArray;
import android.graphics.Color;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.view.ViewPager;
import android.support.v4.widget.DrawerLayout;
import android.util.Log;
import android.view.Gravity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.ImageView;
import java.lang.reflect.Method;
import me.xoder.neteasy.R;
import me.xoder.neteasy.adapter.TabContentPagerAdapter;
public class MainActivity extends FragmentActivity {
private ViewPager mViewPager;
private DrawerLayout slideMenu;
private ActionBar actionBar;
private TabContentPagerAdapter mPagerAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
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 = new TabContentPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mPagerAdapter);
mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
@Override
public void onPageSelected(int position) {
actionBar.setSelectedNavigationItem(position);
}
});
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(ActionBar.Tab tab, FragmentTransaction ft) {
mViewPager.setCurrentItem(tab.getPosition());
}
@Override
public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
@Override
public void onTabReselected(ActionBar.Tab tab, FragmentTransaction ft) {
}
};
TypedArray tabIconIds = getResources().obtainTypedArray(R.array.actionbar_icons);
for (int i = 0; i
View view = getLayoutInflater().inflate(R.layout.actionbar_tab, null);
ImageView tabIcon = (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
*
* @param actionBar actionbar
*/
private void enableEmbeddedTabs(android.app.ActionBar actionBar) {
try {
Method setHasEmbeddedTabsMethod = actionBar.getClass().getDeclaredMethod("setHasEmbeddedTabs", boolean.class);
setHasEmbeddedTabsMethod.setAccessible(true);
setHasEmbeddedTabsMethod.invoke(actionBar, true);
} catch (Exception e) {
Log.v("enableEmbeddedTabs", e.getMessage().toString());
}
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.action_search) {
// TODO: 2015-07-25 搜索界面
} else if (id == R.id.action_menu) {
// TODO: 2015-07-25 菜单选择
if (slideMenu.isDrawerOpen(Gravity.RIGHT)) {
slideMenu.closeDrawer(Gravity.RIGHT);
} else {
slideMenu.openDrawer(Gravity.RIGHT);
}
}
return true;
}
}
//
package me.xoder.neteasy.activity;
import android.annotation.TargetApi;
import android.app.ActionBar;
import android.os.Build;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.FrameLayout;
import me.xoder.neteasy.R;
import me.xoder.neteasy.fragment.discover.fm.CoverFragment;
import me.xoder.neteasy.fragment.discover.fm.LyricFragment;
/**
* Created by alex.lee on 2015-07-29.
*/
public class PersonalFMActivity extends FragmentActivity {
private ActionBar actionBar;
private Fragment fgTo;
private Fragment fgCover;
private Fragment fgLyric;
private boolean fgFlag = false;
private FrameLayout frameContainer;
@TargetApi(Build.VERSION_CODES.JELLY_BEAN_MR2)
@Override
protected void onCreate(Bundle savedInstanceState) {
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 = new CoverFragment();
}
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(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (fgFlag) {
if (fgCover == null) {
fgCover = new CoverFragment();
}
switchFragment(fgTo, fgCover);
} else {
if (fgLyric == null) {
fgLyric = new LyricFragment();
}
switchFragment(fgTo, fgLyric);
}
fgFlag = !fgFlag;
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_personal_fm, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id) {
case android.R.id.home:
finish();
break;
}
return true;
}
public void switchFragment(Fragment from, Fragment to) {
if (from == null || to == null || from == to) {
return;
}
FragmentTransaction transaction = 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特效相关推荐
- 仿照网易云音乐界面 android特效
2019独角兽企业重金招聘Python工程师标准>>> 仿照网易云音乐界面 ,页面UI实现的听不错的,学习ui的朋友可以下载下来研究研究,android特效更多学习. 项目大体框架, ...
- 高仿网易云音乐界面 android特效
仿照网易云音乐界面 ,页面UI实现的听不错的,学习ui的朋友可以下载下来研究研究, 项目大体框架,由ViewPager和TabContentPagerAdapter实现顶部的左右滑动切换view. 右 ...
- python怎么处理中英文符号网名_英文带符号的网名_英文网名带符号加中文
导读:小编根据大家的需要整理了一份关于<英文带符号的网名_英文网名带符号加中文>的内容,具体内容: 很多人喜欢用一些带符号的英文作为自己的个性网名,下面请欣赏小编为大家整理的英文带符号的网 ...
- 口袋网咖已有服务器在使用怎么注销,口袋网咖_口袋网咖常见问题_口袋网咖专区...
口袋网咖是专门为游戏高玩打造的手机变电脑软件,虚拟电脑神器,体验各种电脑游戏,非常的方便,能让小伙伴尽情的体验手机电脑的感觉,很多小伙伴在使用过程中遇到了一些问题,快啦网为大家分享口袋网咖常见问题,一 ...
- 口袋网咖已有服务器在使用怎么注销,口袋网咖_口袋网咖常见问题_口袋网咖推荐_快啦网...
简介: 口袋网咖是专门为游戏高玩打造的手机变电脑软件,虚拟电脑神器,体验各种电脑游戏,对手机配置要求真的不高哦.快啦网为大家分享口袋网咖专区,一起来看看吧~ 口袋网咖介绍 口袋网咖免费版--用手机可以 ...
- 多人上传文件公共网盘_百度网盘带来文件收集功能 可设置后最多向500人收集文件并转存...
百度网盘最近已经为网页版和客户端版带来文件收集功能,即生成特定的文件生成链接邀请其他用户提交文件等. 文件收集功能并不新鲜不过百度网盘倒是目前才支持 , 据蓝点网测试该百度网盘文件收集功能最多支持5 ...
- 测试网速_手机网速测试排名出炉,华为表现意外,中兴才是王者
人们对于5G的好奇热度似乎已经下降很多,不过目前5G仍然还没有实现更大范围的覆盖,同时基于5G的应用生态也没有完全建立,有网友调侃当下的"5G"最大作用就是测试网速,虽然很多网友在 ...
- python网易云_[Python] 网易云歌单/歌曲下载
界面化 可以根据歌单 / 歌曲ID 下载 歌单/歌曲. eg: 歌单ID: https://music.163.com/#/playlist?id=3233380300 中的 3233380300 运 ...
- python百度网盘_百度网盘突然大调整,网友炸了..
点击上方 "数据科学杂谈"关注公众号和我一起提升 然后点击右上角三个点,设为"星标",即使获取更多知识 来源:不正经程序员 转自:不正经程序员 近日,百度网盘在 ...
- 电脑如何测网速_测网速小常识
在我们日常使用的一些测速软件时,里面的功能和名词可大家都知道是什么意思吗?不知道的可以看这里,下面我为大家科普一下吧,如下图: 图片来源于精准测速APP 上传:即上传速度,是指将手机或电脑里面的内容传 ...
最新文章
- CTF---Web入门第一题 what a fuck!这是什么鬼东西?
- mybatis_基础篇
- Java学习之Iterator(迭代器)的一般用法(转)
- 【读书笔记】原型模式代码(C++) 第一版
- 数据湖就是坑人的新概念?那些挖坑的企业,后来都怎么样了
- java 第三方jar推荐_java 开发第三方Jar包
- 如何实现微信公众号批量全部用户标签管理功能
- PCA 实践 利用 PCA 算法对人脸数据集内所有人进行降维和特征提取 PCA原理解析+代码
- 聊聊精密测量仪器的气源维护知识
- 动态3D特效壁纸软件Wallpaper Engine的免费获取及安装问题解决
- 博达交换机S2528PB常用配置命令
- 三个理由告诉你 为什么社保不能断缴
- java jcifs ntlm_Java 使用NTLM身份验证使用soap服务
- 【笔记】ARM架构和ARM芯片(三)
- (转)归江:投资,心平气和结硕果
- 微信编辑器都有什么功能?
- 玩儿转ffmeg的7个技巧
- shell脚本学习笔记 (流编辑器sed)
- vscode如何连接新设备_无人新零售的三大环节痛点,自助收银设备如何解决
- windows 密码破解法
热门文章
- 【ELMAN回归预测】基于matlab鲸鱼算法优化ELMAN回归预测【含Matlab源码 1667期】
- java程序猿面试问缺点怎么回答_面试程序员被问“你的缺点是什么”,我该怎么回答?...
- 申请计算机助理的英语作文,各位帮我找一篇英文申请信大学英语作文,申请助理..._口译笔译考试_帮考网...
- UT000054: The maximum size 1048576 for an individual file in a multipart req
- Matlab的对角阵、三角阵,矩阵变换:矩阵的转置、旋转、翻转、求逆、方阵的行列式、矩阵的秩求解
- 如何将b站视频从手机传输到电脑上
- Element-UI下拉框select实现拼音搜索
- chrome插件离线安装包(.crx)下载
- 微信网页授权只能配置一个域名
- linux目录更改权限不够,Linux中文件夹访问权限不足