VLC学习相关


1、BitmapCache工具类

<span style="white-space:pre">	</span>BitmapCache cache = BitmapCache.getInstance();
            cover = cache.getBitmapFromMemCache(R.drawable.icon);
            if (cover == null) {
                cover = BitmapFactory.decodeResource(v.getResources(), R.drawable.icon);
                cache.addBitmapToMemCache(R.drawable.icon, cover);
            }
注意在Application中的onLowMemory中做清除缓存动作

2、视频播放页面VideoPlayerActivity

1)setOnSystemUiVisibilityChangeListener

android4.0以后可以通过这个来控制 虚拟按键等系统UI

2)IPlayerControl接口

public interface IPlayerControl {
    void setState(boolean isPlaying);

    void setOnPlayerControlListener(OnPlayerControlListener listener);
}
IPlayerControl定义了播放控制相关的接口,由PlayerControlWheel实现,最终由VideoPlayerActivity的布局文件容器addView完成页面的显示

总结:

在复杂的布局中,可以把易聚合的部分抽成一个模块,可以采用两种方式,

1)布局的方式在主布局中以include标签包含进去;

2)自定义view,在主xml中预留容器Framelayout,然后再代码中找到该容器addView进去

这种方式可以根据配置动态适配风格,封装细节,统一外部接口,然后通过addView方法加入主页面,也可以当做接口来使用。

3)刷新infobar进度

<span style="white-space:pre">		</span>case SHOW_PROGRESS:
                    int pos = activity.setOverlayProgress();
                    if (activity.canShowProgress()) {
                        msg = obtainMessage(SHOW_PROGRESS);
                        <span style="color:#ff0000;">sendMessageDelayed(msg, 1000 - (pos % 1000));</span>
                    }
                    break;
3、关于界面AboutActivity

其中“授权许可”页面是采用webView+.html+assets实现的。当静态页面实现较繁琐时,可以考虑网页的思路。

<span style="font-family: Arial, Helvetica, sans-serif;"><string name="about_link" translatable="false">        <a href="http://www.videolan.org/vlc/">http://www.videolan.org/vlc/</a></string></span>





你可能感兴趣的:(android)