本项目是一个模仿暴风影音的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; @Overridepublic 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);}@Overrideprotected 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() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubif (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 imageButton1 = (Button) findViewById(R.id.imageButton1);imageButton1.setOnClickListener(new OnClickListener() {@Overridepublic 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() {@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubIntent 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() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent 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); } @Overridepublic boolean onTouchEvent(MotionEvent event) {// TODO Auto-generated method stubreturn gestureDetector.onTouchEvent(event);}
// @Override
// public boolean onCreateOptionsMenu(Menu menu) {
// getMenuInflater().inflate(R.menu.activity_main, menu);
// return true;
// } }