使用Vitamio打造自己的Android万能播放器(8)——细节优化

简介:
一、更新日志
    1.  新增:显示SDCard剩余空间

 如果SD卡容量有限,而且经常使用下载视频,对剩余空间比较关注。如图:

代码网上找的,也有在项目里用过的:

     public  static String showFileSize( long size) {
        String fileSize;
         if (size < KB)
            fileSize = size + "B";
         else  if (size < MB)
            fileSize = String.format("%.1f", size / KB) + "KB";
         else  if (size < GB)
            fileSize = String.format("%.1f", size / MB) + "MB";
         else
            fileSize = String.format("%.1f", size / GB) + "GB";

         return fileSize;
    }

     /**  显示SD卡剩余空间  */
     public  static String showFileAvailable() {
        String result = "";
         if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
            StatFs sf =  new StatFs(Environment.getExternalStorageDirectory().getPath());
             long blockSize = sf.getBlockSize();
             long blockCount = sf.getBlockCount();
             long availCount = sf.getAvailableBlocks();
             return showFileSize(availCount * blockSize) + " / " + showFileSize(blockSize * blockCount);
        }
         return result;

    2.  改进:加载网页时显示正在加载效果

未改之前每次进入网页都会空白一片,加载完后才显示出来,体验较差。
    3.  改进:在线视频栏目在多个网站之间切换时后退混乱的问题

未改前使用WebView默认的前进后退功能,使用中发现切换后还是会出现后退混乱的状况。注意clearHistory不能清除当前的url。

修改参照帖子,这里。 注意需要判断链接是否相同,即:

           if (!mHistory.contains(url))
                mHistory.add(0, url);

    4.  新增:显示正在加载的url

 

    5.  新增:删除、重命名视频文件

基础功能。

     /**  删除文件  */
     private  void deleteFile( final FileAdapter adapter,  final PFile f,  final  int position) {
         new AlertDialog.Builder(getActivity()).setIcon(android.R.drawable.ic_dialog_alert).setTitle(R.string.file_delete).setMessage(getString(R.string.file_delete_confirm, f.title)).setNegativeButton(android.R.string.yes,  new DialogInterface.OnClickListener() {
            @Override
             public  void onClick(DialogInterface dialog,  int which) {
                 try {
                    File file =  new File(f.path);
                     if (file.canRead() && file.exists())
                        file.delete();
                    FileBusiness.deleteFile(getActivity(), f);
                    adapter.delete(position);
                }  catch (Exception e) {

                }
            }

        }).setPositiveButton(android.R.string.no,  null).show();
    }

     /**  重命名文件  */
     private  void renameFile( final FileAdapter adapter,  final PFile f,  final  int position) {
         final EditText et =  new EditText(getActivity());
        et.setText(f.title);
         new AlertDialog.Builder(getActivity()).setTitle(R.string.file_rename).setIcon(android.R.drawable.ic_dialog_info).setView(et).setNegativeButton(android.R.string.yes,  new DialogInterface.OnClickListener() {

            @Override
             public  void onClick(DialogInterface dialog,  int which) {
                String name = et.getText().toString().trim();
                 if (name ==  null || name.trim().equals("") || name.trim().equals(f.title))
                     return;

                 try {
                    File fromFile =  new File(f.path);
                    File nf =  new File(fromFile.getParent(), name.trim());
                     if (nf.exists()) {
                        Toast.makeText(getActivity(), R.string.file_rename_exists, Toast.LENGTH_LONG).show();
                    }  else  if (fromFile.renameTo(nf)) {
                        f.title = name;
                        f.path = nf.getPath();
                        FileBusiness.renameFile(getActivity(), f);
                        adapter.notifyDataSetChanged();
                    }
                }  catch (SecurityException se) {
                    Toast.makeText(getActivity(), R.string.file_rename_failed, Toast.LENGTH_LONG).show();
                }
            }

        }).setPositiveButton(android.R.string.no,  null).show();
    6.  修正:使用WebView播放视频时无法关闭的问题

使用浏览器的flash插件播放视频时可能会有此问题。

    7.  改进:下载视频显示对应视频标题名称

未改前下载视频为一长串数字。

三、下载
     至本章节往后,代码均不再提供下载,请移步 Google Code:
      http://code.google.com/p/android-oplayer

  无法访问请尝试地址:https://over140@android-oplayer.googlecode.com/hg/ ,参照这里

本文转自博客园农民伯伯的博客,原文链接:使用Vitamio打造自己的Android万能播放器(8)——细节优化,如需转载请自行联系原博主。


目录
相关文章
|
17天前
|
Java 数据库 Android开发
【专栏】Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理
【4月更文挑战第27天】本文探讨了Kotlin在Android开发中的多线程优化,包括线程池、协程的使用,任务分解、避免阻塞操作以及资源管理。通过案例分析展示了网络请求、图像处理和数据库操作的优化实践。同时,文章指出并发编程的挑战,如性能评估、调试及兼容性问题,并强调了多线程优化对提升应用性能的重要性。开发者应持续学习和探索新的优化策略,以适应移动应用市场的竞争需求。
|
20天前
|
缓存 监控 Android开发
构建高效Android应用:从优化用户体验到提升性能表现
【4月更文挑战第23天】 在竞争激烈的移动市场中,一个高效的Android应用是吸引并保留用户的关键。本文将探讨如何通过一系列技术手段和最佳实践来优化Android应用的用户体验和性能表现。我们将深入分析响应式UI设计、内存管理、多线程处理以及最新的Android框架特性,揭示它们如何共同作用以减少应用延迟,提高响应速度,并最终提升整体用户满意度。
|
23天前
|
缓存 API Android开发
Android 应用优化策略:提升性能与用户体验
【4月更文挑战第21天】在移动应用开发领域,性能优化是一个持续的挑战。尤其对于Android平台,由于设备多样性和系统版本的碎片化,开发者需要采取多种策略确保应用流畅运行并给用户带来良好体验。本文将深入探讨针对Android应用的性能优化技巧,包括内存管理、UI渲染效率提升、多线程应用以及电池寿命优化等方面。这些建议旨在帮助开发者诊断和改进现有应用,或在开发新项目时提前考虑到性能因素。
|
24天前
|
API 数据库 Android开发
构建高效Android应用:探究Kotlin协程的优化实践
【4月更文挑战第20天】 在现代Android开发中,Kotlin协程以其轻量级线程管理和非阻塞I/O操作的优势成为提升应用性能和响应性的重要工具。本文深入分析Kotlin协程的核心原理,探讨其在Android平台上实现高效并发编程的方法,并通过具体实例演示如何利用协程改进应用架构。我们将从协程的基本概念出发,逐步解析其与线程、回调和异步任务的关系,最终展示如何通过协程简化代码结构,提高运行效率,并确保用户界面的流畅性。
22 11
|
1月前
|
缓存 测试技术 Android开发
深入探究Android中的自定义View绘制优化策略
【4月更文挑战第8天】 在Android开发实践中,自定义View的绘制性能至关重要,尤其是当涉及到复杂图形和动画时。本文将探讨几种提高自定义View绘制效率的策略,包括合理使用硬件加速、减少不必要的绘制区域以及利用缓存机制等。这些方法不仅能改善用户体验,还能提升应用的整体性能表现。通过实例分析和性能测试结果,我们将展示如何有效地实现这些优化措施,并为开发者提供实用的技术指南。
|
18小时前
|
存储 传感器 Android开发
构建高效Android应用:从优化布局到提升性能
【5月更文挑战第13天】 在竞争激烈的移动应用市场中,一个高效的Android应用不仅需要具备直观的用户界面和丰富的功能,还要确保流畅的性能和快速的响应时间。本文将深入探讨如何通过优化布局设计、减少资源消耗以及利用系统提供的API来提升Android应用的性能。我们将分析布局优化的策略,讨论内存使用的常见陷阱,并介绍异步处理和电池寿命的考量。这些技术的综合运用将帮助开发者构建出既美观又高效的Android应用。
|
23小时前
|
移动开发 Android开发 开发者
构建高效Android应用:探究Kotlin协程的优化实践
【5月更文挑战第13天】 在移动开发领域,Android平台的流畅体验至关重要。随着Kotlin语言的普及,协程作为其核心特性之一,为异步编程提供了简洁且高效的解决方案。本文将深入探讨Kotlin协程在Android应用中的优化使用,从基本概念到实际案例分析,旨在帮助开发者构建更加响应迅速、性能卓越的应用。我们将通过对比传统线程与协程的差异,展示如何利用协程简化代码结构,并通过优化实践减少资源消耗,提升用户体验。
|
2天前
|
移动开发 监控 Android开发
构建高效Android应用:Kotlin协程的实践与优化
【5月更文挑战第12天】 在移动开发领域,性能与响应性是衡量一个应用程序优劣的关键指标。特别是在Android平台上,由于设备的多样性和系统资源的限制,开发者需要精心编写代码以确保应用流畅运行。近年来,Kotlin语言因其简洁性和功能性而广受欢迎,尤其是其协程特性,为异步编程提供了强大而轻量级的解决方案。本文将深入探讨如何在Android应用中使用Kotlin协程来提升性能,以及如何针对实际问题进行优化,确保应用的高效稳定执行。
|
14天前
|
缓存 监控 API
Android应用性能优化实践
【4月更文挑战第30天】 随着智能手机的普及,用户对移动应用的性能要求越来越高。对于Android开发者而言,提升应用的性能是吸引和保留用户的关键因素之一。本文将深入探讨影响Android应用性能的主要因素,并提供一系列的优化策略,旨在帮助开发者构建更加流畅和高效的应用体验。
|
14天前
|
移动开发 调度 Android开发
构建高效Android应用:Kotlin协程的实践与优化
【4月更文挑战第30天】在移动开发领域,性能和响应性是衡量应用质量的关键指标。对于Android平台而言,Kotlin协程作为一种新兴的异步编程解决方案,提供了更为简洁和高效的处理并发任务的能力。本文将深入探讨Kotlin协程的核心原理,以及如何通过它们来提升Android应用的性能。我们将从基础概念出发,逐步介绍协程的创建、管理以及与Android UI线程的交互,并最终展示如何优化现有代码以利用协程的优势。