首页 > 代码库 > 仿暴风影音安卓客户端应用源码

仿暴风影音安卓客户端应用源码

本项目是一个模仿暴风影音的UI项目源码,仿照的界面有菜单页,主页,分类页等,项目内的所有数据都使用的本地模拟数据,仿照度一般在大分辨设备上布局显示会有问题,480x800的分辨率应该正合适,默认编译版本4.2.2编码GBK,注释不多,需要的朋友可以下载看一下。

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 imageButton1 = (Button) findViewById(R.id.imageButton1);        imageButton1.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

仿暴风影音安卓客户端应用源码