偶然看到 “马蜂窝自由行app”,在第一次打开时播放了个视频文件,以后打开后上方是一个广告,下方是一个类似gif的动画。感觉很炫,所以决定实现一下。
第一次打开得效果如下
第二次打开得效果如下:
一、具体实现
一开始没见过这种方式得欢迎页面,通过反编译马蜂窝自由行app后发现。在raw文件夹下有2个视频文件,一个是上方得那个视频,一个是下方得那个logo视频。看到这2个文件,基本就可以确定他是怎么实现得了。(顺便再这里吐槽一下,这个好得一个app居然不混淆下,内部访问网络得部分代码以及访问得url都很容易获取。)
1、播放MP4视频
其实是很简单的,用一个videoview可以直接播放本地MP4文件(这里重写了个videoview,因为不修改下的话视频不能全屏播放)
<com.zk.ui.FullScreenView
android:id="@+id/welcomeVideo"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_centerInParent="true" />
在activity中如下代码即可:
welcomeVideo=(VideoView)findViewById(R.id.welcomeVideo);
Uri localUri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.welcome);
welcomeVideo.setVideoURI(localUri);
welcomeVideo.start();
welcomeVideo.requestFocus();
2、广告页面
出现宣传动画只是在第一次打开app时会有体现,以后打开得话,上方是一个广告页面,下方是一个logo得动画。
mplayer=new MediaPlayer();
AssetFileDescriptor localAssetFileDescriptor = getResources().openRawResourceFd(R.raw.splash_animation);
try {
mplayer.setDataSource(localAssetFileDescriptor.getFileDescriptor(), localAssetFileDescriptor.getStartOffset(), localAssetFileDescriptor.getLength());
mplayer.setOnPreparedListener(new OnPreparedListener() {
@Override
public void onPrepared(MediaPlayer arg0) {
// TODO Auto-generated method stub
readyToPlay=true;
launchAds.setVisibility(View.VISIBLE);
launchAds.setImageUrl("http://file32.mafengwo.net/M00/4F/21/wKgBs1cN_3qAOKQpAAhByaOonCY71.jpg");
mplayer.start();
}
});
使用AssetFileDescriptor和MediaPlayer播放raw下方得logo视频,在上方使用了WebImageView这个开源程序显示了个网络图片。
下方是代码的下载地址。
http://download.csdn.net/detail/zhang58246500/9491195