本项目是一个模仿暴风影音的UI项目源码,仿照的界面有菜单页,主页,分类页等,项目内的所有数据都使用的本地模拟数据,仿照度一般在大分辨设备上布局显示会有问题,480x800的分辨率应该正合适,默认编译版本4.2.2编码GBK,注释不多,需要的朋友可以下载看一下。 ×××: http://code.662p.com/view/8949.html public class MainActivity extends TabActivity {
private SlideMenu slideMenu;
private TabHost tabHost;
private LayoutInflater inflater;
private Intent intent1, intent2, intent3, intent4, intent5, intent6;
private long exitTime = 0;
private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;
private GestureDetector gestureDetector;
View.OnTouchListener gestureListener;
int currentView = 0;
private static int maxTabIndex = 5;
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK
&& event.getAction() == KeyEvent.ACTION_DOWN) {
if ((System.currentTimeMillis() - exitTime) > 2000) {
Toast.makeText(MainActivity.this, "再按一次退出程序",
Toast.LENGTH_SHORT).show();
exitTime = System.currentTimeMillis();
} else {
finish();
System.exit(0);
}
return true;
}
return super.onKeyDown(keyCode, event);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gestureDetector = new GestureDetector(new MyGestureDetector());
gestureListener = new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
return true;
}
return false;
}
};
// 抽屉效果
slideMenu = (SlideMenu) findViewById(R.id.slide_menu);
ImageView menuImg = (ImageView) findViewById(R.id.slide_firstmenu);
menuImg.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
if (slideMenu.isMainScreenShowing()) {
slideMenu.openMenu();
} else {
slideMenu.closeMenu();
}
}
});
intent1 = new Intent(MainActivity.this, FirstActivity.class);
intent2 = new Intent(MainActivity.this, SecondActivity.class);
intent3 = new Intent(MainActivity.this, SecondActivity.class);
intent4 = new Intent(MainActivity.this, SecondActivity.class);
intent5 = new Intent(MainActivity.this, SecondActivity.class);
intent6 = new Intent(MainActivity.this, MoreInformationActivity.class);
LayoutInflater inflater = LayoutInflater.from(MainActivity.this);
View view1 = inflater.inflate(R.layout.tabitem_1, null);
View view2 = inflater.inflate(R.layout.tabitem_2, null);
View view3 = inflater.inflate(R.layout.tabitem_3, null);
View view4 = inflater.inflate(R.layout.tabitem_4, null);
View view5 = inflater.inflate(R.layout.tabitem_5, null);
View view6 = inflater.inflate(R.layout.tabitem_6, null);
// 创建TabHost
// tabHost = (TabHost) findViewById(R.id.tabHost);
// tabHost.setup();
tabHost = getTabHost();
TabSpec tabSpec1 = tabHost.newTabSpec("tab1").setIndicator(view1)
.setContent(intent1);
tabHost.addTab(tabSpec1);
TabSpec tabSpec2 = tabHost.newTabSpec("tab2").setIndicator(view2)
.setContent(intent2);
tabHost.addTab(tabSpec2);
TabSpec tabSpec3 = tabHost.newTabSpec("tab3").setIndicator(view3)
.setContent(intent3);
tabHost.addTab(tabSpec3);
TabSpec tabSpec4 = tabHost.newTabSpec("tab4").setIndicator(view4)
.setContent(intent4);
tabHost.addTab(tabSpec4);
TabSpec tabSpec5 = tabHost.newTabSpec("tab5").setIndicator(view5)
.setContent(intent5);
tabHost.addTab(tabSpec5);
TabSpec tabSpec6 = tabHost.newTabSpec("tab6").setIndicator(view6)
.setContent(intent6);
tabHost.addTab(tabSpec6);
Button p_w_picpathButton1 = (Button) findViewById(R.id.p_w_picpathButton1);
p_w_picpathButton1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
// Toast.makeText(MainActivity.this, "123", Toast.LENGTH_SHORT)
// .show();
Intent newIntent = new Intent(MainActivity.this,
LocalActivity.class);
startActivity(newIntent);
}
});
ImageView slide_menu_history = (ImageView) findViewById(R.id.slide_menu_history);
slide_menu_history.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent newIntent = new Intent(MainActivity.this,
HistoryActivity.class);
startActivity(newIntent);
}
});
ImageView slide_menu_search = (ImageView) findViewById(R.id.slide_menu_search);
slide_menu_search.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Intent newIntent = new Intent(MainActivity.this,
SearchActivity.class);
startActivity(newIntent);
}
});
}
// 左右滑动刚好页面也有滑动效果
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
TabHost tabHost = getTabHost();
System.out.println("************");
try {
if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH)
return false;
// right to left swipe
if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Log.i("test", "right");
if (currentView == maxTabIndex) {
currentView = 0;
} else {
currentView++;
}
tabHost.setCurrentTab(currentView);
} else if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE
&& Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) {
Log.i("test", "left");
if (currentView == 0) {
currentView = maxTabIndex;
} else {
currentView--;
}
tabHost.setCurrentTab(currentView);
}
} catch (Exception e) {
}
return false;
}
}
@Override
public boolean dispatchTouchEvent(MotionEvent event) {
if (gestureDetector.onTouchEvent(event)) {
event.setAction(MotionEvent.ACTION_CANCEL);
}
return super.dispatchTouchEvent(event);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
// TODO Auto-generated method stub
return gestureDetector.onTouchEvent(event);
}
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.activity_main, menu);
// return true;
// }
}
|
<ignore_js_op>
运行截图推荐界面
<ignore_js_op>
导航板块
<ignore_js_op>
搜索框
<ignore_js_op>
电视剧显示
详细说明:http://android.662p.com/thread-5865-1-1.html
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。