我制作了一个有 4 个选项卡的应用程序:
我制作了 MainActivity 类,其中使用 FragmentTabHost 类 id 来显示选项卡。
public class MainActivity extends FragmentActivity{
private FragmentTabHost mTabHost;
private FragmentTabHost mTabHostabove;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
setContentView(R.layout.activity_main);
mTabHost = (FragmentTabHost)findViewById(R.id.tabhost);
mTabHost.setup(this, getSupportFragmentManager(), R.id.tabcontent);
mTabHost.addTab(mTabHost.newTabSpec("Vedio").setIndicator("Vedio",getResources().getDrawable(R.drawable.ic_launcher)),FragmentTab.class,null);
mTabHost.addTab(mTabHost.newTabSpec("Virtual Lab").setIndicator("Virtual Lab"),FragmentTab.class,null);
mTabHost.addTab(mTabHost.newTabSpec("Edit Vedio").setIndicator("Edit Vedio"),FragmentTab.class,null);
mTabHost.addTab(mTabHost.newTabSpec("Help").setIndicator("Help1"),FragmentTab.class,null);
mTabHostabove = (FragmentTabHost)findViewById(R.id.tabhostabove);
mTabHostabove.setup(this, getSupportFragmentManager(), R.id.tabcontent);
mTabHostabove.addTab(mTabHostabove.newTabSpec("Logo").setIndicator("Logo"),FragmentTab.class,null);
mTabHostabove.addTab(mTabHostabove.newTabSpec("Vedio Url ").setIndicator("Vedio Url",getResources().getDrawable(R.drawable.ic_launcher)),FragmentTab.class,null);
}
}
我还创建了 FragmentTab 类来扩展 Fragment。
这是代码:
public class FragmentTab extends Fragment {
private TextView tv;
private VideoView mVideoView;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_layout, container, false);
tv = (TextView) v.findViewById(R.id.text);
mVideoView = (VideoView)v.findViewById(R.id.vedioview);
tv.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {
String path1="http://commonsware.com/misc/test2.3gp";
MediaController mc = new MediaController(getActivity());
mc.setAnchorView(mVideoView);
mc.setMediaPlayer(mVideoView);
mVideoView.setMediaController(mc);
mVideoView.requestFocus();
// mVideoView.setVideoURI(Uri.parse("android.resource://" +getActivity().getApplicationContext().getPackageName() +"/"+R.raw.song));
mVideoView.setVideoURI(Uri.parse(path1));
mc.show();
mVideoView.start();
} catch (Exception e) {
}
}
});
String tag = this.getTag();
if (tag == "Vedio") {
tv.setText("play vedio");
}
if (tag == "Edit Vedio") {
tv.setText("want to Edit Vedio !!!!!!!");
}
if (tag == "Help") {
tv.setText("do u want help !!!!!!!");
}
if (tag == "Virtual Lab") {
tv.setText("Enter Virtual lab !!!!!!!");
}
return v;
}
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
}
}
我坚持要在单击视频选项卡上播放视频 如果可以的话任何人都可以解决它。我已经搜索了3天,但没有找到解决方案。视频有声音,但视频未播放。
并非所有设备都支持所有视频编解码器。
我遇到了同样的问题:我使用 mp4 格式和 1280x720 的分辨率。并非所有设备(例如 HTC Wildfire S)都支持此视频格式。将分辨率更改为 480x360 后,所有设备都可以播放视频。
此链接应该可以帮助您: http://developer.android.com/guide/appendix/media-formats.html
您的
MainActivity
类实现利用 FragmentTabHost
进行选项卡显示似乎结构良好。它有效地设置了选项卡功能,指示“视频”、“虚拟实验室”和“编辑视频”等各个部分。您在“徽标”和“视频网址”等其他选项卡中添加 mTabHostabove
可以增强应用程序的导航功能。总体而言,它似乎是一个强大的实现。如需进一步改进或故障排除,请考虑检查布局 XML (activity_main.xml
) 并确保正确的片段处理。此外,探索在线资源或寻求开发社区的帮助可以提供有价值的见解。您也可以访问Alight Motion APK进行相关讨论和支持。