安卓原创 - Fragment底部菜单栏实现
2017-03-12 16:38
344 查看
在我们学习这个只是之前我们先看看,效果图。界面仅作参考,演示中并非使用原生安卓开发,请大家注意。
看到效果图想必大家已经有一定的思路了吧。实现这种底部导航栏。一共有不下三种方法。这里我做个简单介绍。
1.安卓原生的TabHost控件,参考地址如下
http://www.cnblogs.com/lichenwei/p/3974009.html
2.使用安卓v4包的ViewPager控件
http://blog.csdn.net/loveyaozu/article/details/51149467
3.使用今天我们的主题Fragment实现。
官网在Android4.0以后就推荐我们使用Fragment来实现。下面我们就正式开始了解。
1.MainActivity.java
9.string.xml
最后AndroidManifast.xml
看到效果图想必大家已经有一定的思路了吧。实现这种底部导航栏。一共有不下三种方法。这里我做个简单介绍。
1.安卓原生的TabHost控件,参考地址如下
http://www.cnblogs.com/lichenwei/p/3974009.html
2.使用安卓v4包的ViewPager控件
http://blog.csdn.net/loveyaozu/article/details/51149467
3.使用今天我们的主题Fragment实现。
官网在Android4.0以后就推荐我们使用Fragment来实现。下面我们就正式开始了解。
1.MainActivity.java
package com.hengyti.candytv; import org.xutils.x; import org.xutils.view.annotation.ContentView; import org.xutils.view.annotation.Event; import org.xutils.view.annotation.ViewInject; import android.app.ActionBar; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.ImageView; import android.widget.TextView; @ContentView(R.layout.activity_main) public class MainActivity extends Activity { @ViewInject(R.id.image_menu_one)private ImageView image_cctv; @ViewInject(R.id.text_menu_one)private TextView text_cctv; @ViewInject(R.id.image_menu_two)private ImageView image_movie; @ViewInject(R.id.text_menu_two)private TextView text_movie; @ViewInject(R.id.image_menu_three)private ImageView image_weishi; @ViewInject(R.id.text_menu_three)private TextView text_weishi; @ViewInject(R.id.image_menu_four)private ImageView image_mine; @ViewInject(R.id.text_menu_four)private TextView text_mine; private FragmentManager fragmentManger; private FragmentOne fragment_cctv = null; private FragmentTwo fragment_movie = null; private FragmentThree fragment_weishi = null; private FragmentFour fragment_mine = null; private ActionBar actionbar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); x.view().inject(this); fragmentManger = getFragmentManager(); setMenuItem(1); actionbar = getActionBar(); actionbar.setTitle("中央频道"); } @Event({R.id.layout_menu_one,R.id.layout_menu_two,R.id.layout_menu_three,R.id.layout_menu_four}) private void OnClick(View view){ switch(view.getId()){ case R.id.layout_menu_one: initMenu(1); setMenuItem(1); actionbar.setTitle("中央频道"); break; case R.id.layout_menu_two: initMenu(2); setMenuItem(2); actionbar.setTitle("电影频道"); break; case R.id.layout_menu_three: initMenu(3); setMenuItem(3); actionbar.setTitle("地方卫视"); break; case R.id.layout_menu_four: initMenu(4); setMenuItem(4); actionbar.setTitle("个人中心"); break; } } //每次点击的时候都初始化 private void initMenu(int index){ image_cctv.setBackgroundResource(R.drawable.cctv); text_cctv.setTextColor(Color.GRAY); image_movie.setBackgroundResource(R.drawable.movie); text_movie.setTextColor(Color.GRAY); image_weishi.setBackgroundResource(R.drawable.weishi); text_weishi.setTextColor(Color.GRAY); image_mine.setBackgroundResource(R.drawable.mine); text_mine.setTextColor(Color.GRAY); switch(index){ case 1: image_cctv.setBackgroundResource(R.drawable.cctv_selected); text_cctv.setTextColor(Color.WHITE); break; case 2: image_movie.setBackgroundResource(R.drawable.movie_selected); text_movie.setTextColor(Color.WHITE); break; case 3: image_weishi.setBackgroundResource(R.drawable.weish_selected); text_weishi.setTextColor(Color.WHITE); break; case 4: image_mine.setBackgroundResource(R.drawable.mine_selected); text_mine.setTextColor(Color.WHITE); break; } } private void setMenuItem(int index){ FragmentTransaction transaction = fragmentManger.beginTransaction(); if(fragment_cctv != null) transaction.hide(fragment_cctv); if(fragment_movie != null) transaction.hide(fragment_movie); if(fragment_weishi != null) transaction.hide(fragment_weishi); if(fragment_mine != null) transaction.hide(fragment_mine); switch(index){ case 1: if(fragment_cctv == null){ fragment_cctv = new FragmentOne(); transaction.add(R.id.content, fragment_cctv); }else{ transaction.show(fragment_cctv); } break; case 2: if(fragment_movie == null){ fragment_movie = new FragmentTwo(); transaction.add(R.id.content, fragment_movie); }else{ transaction.show(fragment_movie); } break; case 3: if(fragment_weishi == null){ fragment_weishi = new FragmentThree(); transaction.add(R.id.content, fragment_weishi); }else{ transaction.show(fragment_weishi); } break; case 4: if(fragment_mine == null){ fragment_mine = new FragmentFour(); transaction.add(R.id.content, fragment_mine); }else{ transaction.show(fragment_mine); } break; } transaction.commit(); } }2.activity_main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity" > <FrameLayout android:id="@+id/content" android:layout_height="0dp" android:layout_width="match_parent" android:layout_weight="1" ></FrameLayout> <LinearLayout android:layout_height="60dip" android:layout_width="match_parent" android:orientation="horizontal" android:background="#FFFF0000" > <LinearLayout android:id="@+id/layout_menu_one" android:layout_height="60dip" android:layout_width="0dp" android:layout_weight="1" android:orientation="vertical" android:gravity="center" > <ImageView android:id="@+id/image_menu_one" android:layout_width="40dip" android:layout_height="40dip" android:background="@drawable/cctv_selected" /> <TextView android:id="@+id/text_menu_one" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/white" android:text="@string/menu_one" /> </LinearLayout> <LinearLayout android:id="@+id/layout_menu_two" android:layout_height="60dip" android:layout_width="0dp" android:layout_weight="1" android:orientation="vertical" android:gravity="center" > <ImageView android:id="@+id/image_menu_two" android:layout_width="40dip" android:layout_height="40dip" android:background="@drawable/movie" /> <TextView android:id="@+id/text_menu_two" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/gray" android:text="@string/menu_two" /> </LinearLayout> <LinearLayout android:id="@+id/layout_menu_three" android:layout_height="60dip" android:layout_width="0dp" android:layout_weight="1" android:orientation="vertical" android:gravity="center" > <ImageView android:id="@+id/image_menu_three" android:layout_width="40dip" android:layout_height="40dip" android:background="@drawable/weishi" /> <TextView android:id="@+id/text_menu_three" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/gray" android:text="@string/menu_three" /> </LinearLayout> <LinearLayout android:id="@+id/layout_menu_four" android:layout_height="60dip" android:layout_width="0dp" android:layout_weight="1" android:orientation="vertical" android:gravity="center" > <ImageView android:id="@+id/image_menu_four" android:layout_width="40dip" android:layout_height="40dip" android:background="@drawable/mine" /> <TextView android:id="@+id/text_menu_four" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:textColor="@color/gray" android:text="@string/menu_four" /> </LinearLayout> </LinearLayout> </LinearLayout>3.APP.java
package com.hengyti.candytv; import org.xutils.x; import android.app.Application; public class APP extends Application { @Override public void onCreate() { // TODO Auto-generated method stub super.onCreate(); x.Ext.init(this); } }4.FragmentOne.java
package com.hengyti.candytv; import java.util.ArrayList; import java.util.List; import org.xutils.x; import org.xutils.view.annotation.ContentView; import org.xutils.view.annotation.Event; import org.xutils.view.annotation.ViewInject; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; @ContentView(R.layout.fragment_one) public class FragmentOne extends Fragment{ @ViewInject(R.id.listview)private ListView listview; private MyListviewAdapter adapter; private List<Rtmp> list = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return x.view().inject(this, inflater, container); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); list = new ArrayList<Rtmp>(); getData(); adapter = new MyListviewAdapter(getActivity(), list); listview.setAdapter(adapter); } @Event(value=R.id.listview,type=OnItemClickListener.class) private void onItemClick(AdapterView arg0,View arg1, int arg2, long arg3){ Rtmp r = (Rtmp) adapter.getItem(arg2); Intent intent = new Intent(getActivity(),VideoPlayer.class); intent.putExtra("path", r.getRtmp()); startActivity(intent); } private void getData(){ Rtmp r1 = new Rtmp(); r1.setName("CCTV-1"); r1.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv1"); list.add(r1); Rtmp r2 = new Rtmp(); r2.setName("CCTV-2"); r2.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv2"); list.add(r2); Rtmp r3 = new Rtmp(); r3.setName("CCTV-3"); r3.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv3"); list.add(r3); Rtmp r4 = new Rtmp(); r4.setName("CCTV-4"); r4.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv4"); list.add(r4); Rtmp r5 = new Rtmp(); r5.setName("CCTV-5"); r5.setRtmp("http://183.252.176.44//PLTV/88888888/224/3221225925/index.m3u8"); list.add(r5); Rtmp r6 = new Rtmp(); r6.setName("CCTV-6"); r6.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv6"); list.add(r6); Rtmp r7 = new Rtmp(); r7.setName("CCTV-7"); r7.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv7"); list.add(r7); Rtmp r8 = new Rtmp(); r8.setName("CCTV-8"); r8.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv8"); list.add(r8); Rtmp r9 = new Rtmp(); r9.setName("CCTV-9"); r9.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv9"); list.add(r9); Rtmp r10 = new Rtmp(); r10.setName("CCTV-10"); r10.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv10"); list.add(r10); Rtmp r11 = new Rtmp(); r11.setName("CCTV-11"); r11.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv11"); list.add(r11); Rtmp r12 = new Rtmp(); r12.setName("CCTV-12"); r12.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv12"); list.add(r12); Rtmp r13 = new Rtmp(); r13.setName("CCTV-13"); r13.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv13"); list.add(r13); Rtmp r14 = new Rtmp(); r14.setName("CCTV-14"); r14.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv14"); list.add(r14); Rtmp r15 = new Rtmp(); r15.setName("CCTV-15"); r15.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cctv15"); list.add(r15); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } }5.FragmentTwo.java
package com.hengyti.candytv; import java.util.ArrayList; import java.util.List; import org.xutils.x; import org.xutils.view.annotation.ContentView; import org.xutils.view.annotation.Event; import org.xutils.view.annotation.ViewInject; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; @ContentView(R.layout.fragment_two) public class FragmentTwo extends Fragment{ @ViewInject(R.id.listview)private ListView listview; private MyListviewAdapter adapter; private List<Rtmp> list = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return x.view().inject(this, inflater, container); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); list = new ArrayList<Rtmp>(); getData(); adapter = new MyListviewAdapter(getActivity(), list); listview.setAdapter(adapter); } @Event(value=R.id.listview,type=OnItemClickListener.class) private void onItemClick(AdapterView arg0,View arg1, int arg2, long arg3){ Rtmp r = (Rtmp) adapter.getItem(arg2); Intent intent = new Intent(getActivity(),VideoPlayer.class); intent.putExtra("path", r.getRtmp()); startActivity(intent); } private void getData(){ //电影 Rtmp r1 = new Rtmp(); r1.setName("1080P播不停"); r1.setRtmp("http://live.gslb.letv.com/gslb?stream_id=lb_1080P_1080p3m&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1009&format=letv&expect=1"); list.add(r1); Rtmp r2 = new Rtmp(); r2.setName("动作电影"); r2.setRtmp("http://live.gslb.letv.com/gslb?stream_id=lb_dzdy_1300&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1009&format=letv&expect=3"); list.add(r2); Rtmp r3 = new Rtmp(); r3.setName("香港电影"); r3.setRtmp("http://live.gslb.letv.com/gslb?stream_id=lb_hkmovie_1300&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1009&format=letv&expect=3"); list.add(r3); Rtmp r4 = new Rtmp(); r4.setName("喜剧电影"); r4.setRtmp("http://live.gslb.letv.com/gslb?stream_id=lb_comedy_1300&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1009&format=letv&expect=3"); list.add(r4); Rtmp r5 = new Rtmp(); r5.setName("日韩电影"); r5.setRtmp("http://live.gslb.letv.com/gslb?stream_id=lb_rhdy_800&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1007&format=cs1&expect=3"); list.add(r5); Rtmp r6 = new Rtmp(); r6.setName("四大天王"); r6.setRtmp("http://live.g3proxy.lecloud.com/gslb?stream_id=lb_hk_fourkings_3000&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1012&format=letv&expect=1"); list.add(r6); Rtmp r7 = new Rtmp(); r7.setName("甄子丹"); r7.setRtmp("http://live.g3proxy.lecloud.com/gslb?stream_id=lb_hk_donnieyan_3000&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1012&format=letv&expect=1"); list.add(r7); Rtmp r8 = new Rtmp(); r8.setName("成龙"); r8.setRtmp("http://live.g3proxy.lecloud.com/gslb?stream_id=lb_hk_jackiechen_3000&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1012&format=letv&expect=1"); list.add(r8); Rtmp r9 = new Rtmp(); r9.setName("周星驰"); r9.setRtmp("http://live.g3proxy.lecloud.com/gslb?stream_id=lb_hk_stephenchow_3000&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1012&format=letv&expect=1"); list.add(r9); Rtmp r10 = new Rtmp(); r10.setName("周润发"); r10.setRtmp("http://live.g3proxy.lecloud.com/gslb?stream_id=lb_hk_FatGor_3000&tag=live&ext=m3u8&sign=live_tv&platid=10&splatid=1012&format=letv&expect=1"); list.add(r10); Rtmp r11 = new Rtmp(); r11.setName("战旗影院1"); r11.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/80918_cr4oy.m3u8"); list.add(r11); Rtmp r12 = new Rtmp(); r12.setName("战旗影院2"); r12.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/99815_VmbZY.m3u8"); list.add(r12); Rtmp r13 = new Rtmp(); r13.setName("战旗影院3"); r13.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/132468_JylgL.m3u8"); list.add(r13); Rtmp r14 = new Rtmp(); r14.setName("战旗影院4"); r14.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/88945_Kligp.m3u8"); list.add(r14); Rtmp r15 = new Rtmp(); r15.setName("战旗影院5"); r15.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/7032_0s2qn.m3u8"); list.add(r15); Rtmp r16 = new Rtmp(); r16.setName("战旗影院7"); r16.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/20910_uUMgC.m3u8"); list.add(r16); Rtmp r17 = new Rtmp(); r17.setName("战旗影院8"); r17.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/35349_iXsXw.m3u8"); list.add(r17); Rtmp r19 = new Rtmp(); r19.setName("战旗影院10"); r19.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/53346_ESoth.m3u8"); list.add(r19); Rtmp r20 = new Rtmp(); r20.setName("战旗影院12"); r20.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/35180_KUDhx.m3u8"); list.add(r20); Rtmp r21 = new Rtmp(); r21.setName("战旗影院14"); r21.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/96851_ZeePd.m3u8"); list.add(r21); Rtmp r22 = new Rtmp(); r22.setName("战旗影院15"); r22.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/90819_iMmHS.m3u8"); list.add(r22); Rtmp r23 = new Rtmp(); r23.setName("战旗影院16"); r23.setRtmp("http://dlhls.cdn.zhanqi.tv/zqlive/45338_MRc2N.m3u8"); list.add(r23); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } }6.FragmentThree.java
package com.hengyti.candytv; import java.util.ArrayList; import java.util.List; import org.xutils.x; import org.xutils.view.annotation.ContentView; import org.xutils.view.annotation.Event; import org.xutils.view.annotation.ViewInject; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ListView; @ContentView(R.layout.fragment_three) public class FragmentThree extends Fragment{ @ViewInject(R.id.listview)private ListView listview; private MyListviewAdapter adapter; private List<Rtmp> list = null; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return x.view().inject(this, inflater, container); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); list = new ArrayList<Rtmp>(); getData(); adapter = new MyListviewAdapter(getActivity(), list); listview.setAdapter(adapter); } @Event(value=R.id.listview,type=OnItemClickListener.class) private void onItemClick(AdapterView arg0,View arg1, int arg2, long arg3){ Rtmp r = (Rtmp) adapter.getItem(arg2); Intent intent = new Intent(getActivity(),VideoPlayer.class); intent.putExtra("path", r.getRtmp()); startActivity(intent); } private void getData(){ //卫视 Rtmp r1 = new Rtmp(); r1.setName("香港卫视"); r1.setRtmp("http://live.hkstv.hk.lxdns.com/live/hks/playlist.m3u8"); list.add(r1); Rtmp r2 = new Rtmp(); r2.setName("兵团卫视"); r2.setRtmp("http://gslbserv.itv.cmvideo.cn/HDbtws.m3u8?authCode=07110409322147352675&stbId=006001FF0018120000060019F0D496A1&Contentid=5417511929530418061&mos=jbjhhzstsl&livemode=1&channel-id=wasusyt"); list.add(r2); Rtmp r3 = new Rtmp(); r3.setName("四川卫视"); r3.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=scws"); list.add(r3); Rtmp r4 = new Rtmp(); r4.setName("湖南卫视"); r4.setRtmp("http://gslbserv.itv.cmvideo.cn/HDhnws.m3u8?authCode=07110409322147352675&stbId=006001FF0018120000060019F0D496A1&Contentid=6837496099179515295&mos=jbjhhzstsl&livemode=1&channel-id=wasusyt"); list.add(r4); Rtmp r5 = new Rtmp(); r5.setName("北京卫视"); r5.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=bjws"); list.add(r5); Rtmp r6 = new Rtmp(); r6.setName("江苏卫视"); r6.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=jsws"); list.add(r6); Rtmp r7 = new Rtmp(); r7.setName("天津卫视"); r7.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=tjws"); list.add(r7); Rtmp r8 = new Rtmp(); r8.setName("东方卫视"); r8.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=dfws"); list.add(r8); Rtmp r9 = new Rtmp(); r9.setName("山东卫视"); r9.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=sdws"); list.add(r9); Rtmp r10 = new Rtmp(); r10.setName("江西卫视"); r10.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=jxws"); list.add(r10); Rtmp r11 = new Rtmp(); r11.setName("重庆卫视"); r11.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=cqws"); list.add(r11); Rtmp r12 = new Rtmp(); r12.setName("云南卫视"); r12.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=ynws"); list.add(r12); Rtmp r13 = new Rtmp(); r13.setName("广东卫视"); r13.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=gdws"); list.add(r13); Rtmp r14 = new Rtmp(); r14.setName("广西卫视"); r14.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=gxws"); list.add(r14); Rtmp r15 = new Rtmp(); r15.setName("深圳卫视"); r15.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=szws"); list.add(r15); Rtmp r16 = new Rtmp(); r16.setName("贵州卫视"); r16.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=gzws"); list.add(r16); Rtmp r17 = new Rtmp(); r17.setName("浙江卫视"); r17.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=zjws"); list.add(r17); Rtmp r19 = new Rtmp(); r19.setName("甘肃卫视"); r19.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=gsws"); list.add(r19); Rtmp r20 = new Rtmp(); r20.setName("宁夏卫视"); r20.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=nxws"); list.add(r20); Rtmp r21 = new Rtmp(); r21.setName("陕西卫视"); r21.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=sxws"); list.add(r21); Rtmp r22 = new Rtmp(); r22.setName("青海卫视"); r22.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=qhws"); list.add(r22); Rtmp r23 = new Rtmp(); r23.setName("江西卫视"); r23.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=jxws"); list.add(r23); Rtmp r24 = new Rtmp(); r24.setName("安徽卫视"); r24.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=ahws"); list.add(r24); Rtmp r25 = new Rtmp(); r25.setName("湖北卫视"); r25.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=hbws"); list.add(r25); Rtmp r26 = new Rtmp(); r26.setName("河北卫视"); r26.setRtmp("http://weblive.hebtv.com/live/hbws_bq/index.m3u8"); list.add(r26); Rtmp r27 = new Rtmp(); r27.setName("新疆卫视"); r27.setRtmp("http://www.anchoredinversion.com/tv/ds/wasu10.php?id=xjws"); list.add(r27); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } }7.FramentFour.java
package com.hengyti.candytv; import org.xutils.x; import org.xutils.view.annotation.ContentView; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @ContentView(R.layout.fragment_four) public class FragmentFour extends Fragment{ @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return x.view().inject(this, inflater, container); } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } @Override public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); } }8.fragment_one.xml 这里我只贴出一个 其他三个自行扩展
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ListView android:id="@+id/listview" android:layout_height="match_parent" android:layout_width="match_parent" ></ListView> </LinearLayout>
9.string.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="app_name">90糖果TV</string> <string name="menu_one">中央频道</string> <string name="menu_two">电影频道</string> <string name="menu_three">卫视频道</string> <string name="menu_four">个人中心</string> <string name="buffering">正在加载</string> </resources>
最后AndroidManifast.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.hengyti.candytv" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="14" /> <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <application android:name=".APP" android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:theme="@android:style/Theme.Holo.Light.NoActionBar.Fullscreen" android:screenOrientation="landscape" android:name="com.hengyti.candytv.VideoPlayer"></activity> </application> </manifest>这样就实现了底部导航栏。
相关文章推荐
- 安卓从零开发之购物商城(一)--底部菜单栏的的实现(FragmentTabHost)
- 安卓常见布局:RadioButton配合Fragment实现底部菜单栏切换
- 底部菜单栏 Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- Fragment+FragmentTabHost实现底部菜单栏
- Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】4.底部菜单栏(一)Fragment介绍和简单实现
- 【Android UI设计与开发】5.底部菜单栏(二)使用Fragment实现底部菜单栏
- FragmentTabHost+Fragment实现底部菜单栏
- Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- Android TabHost +Fragment 实现底部菜单栏
- 【Android】底部菜单栏--Fragment+FragmentTabHost实现
- 安卓开发笔记——多种方式实现底部菜单栏(仿微信界面)
- 安卓开发笔记——Fragment+FragmentTabHost组件(实现新浪微博底部菜单)
- #Android笔记#fragment+fragmentTabHost实现底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- Android知识点九(ViewPager + Fragment 实现底部菜单栏)
- 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏
- 【Android UI设计与开发】4.底部菜单栏(一)Fragment介绍和简单实现