`
nanjingjiangbiao_T
  • 浏览: 2739352 次
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

android背景优化

 
阅读更多

当程序的数据有改变的时候就需要更新屏幕,这个时候我们就采用invalidata方法。这个方法简单方便,而当我们调用这个方法的时候我们整个视 图都发生了更新。而我们的数据一般情况下只是在某一个区域内做出改变,这个时候我们再去更新其他没有数据改变的区域就很浪费资源。这个时候我们考虑如何优 化。

解决办法

Android提供系统了两个局部更新数据的方法:

invalidate(Rect dirty);
 
invalidate(int left, int top, int right,int bottom);

利用这两个方法我们就可以只对需要更新的区域做出更新,其他不需要数据更新的区域就不会发生更新。这样节省了很多资源。

效率展示:

方法一每秒更新18个frame

方法二 每秒48 个frame 更新

从图中可以看出局部更新的两个方法的效率是相同的。

下面给大家分享背景和图像的开发技巧。

视图背景的优化

视图的背景是根据视图的大小自动调节的。不管图像的尺寸是多大,如果图像做为视图的背景的时候,图像会自动缩放来匹配填充视图的大小。当视图大小和 背景图片的尺寸不匹配的的时候,系统会自动的缩放图片。这样的自动调整如果多次甚至大量的出现在我们的应用中,那么势必会造成程序加载到延时、效率降低。 那么我们如何尽量的避免自动缩放呢?

一、提供的背景图片正好和视图的大小一致

我们在制作程序的时候选择的背景图片正好和视图的大小一致,这样可以避免背景图标的自动缩放。

有些时候我们受到一些因素的制约可能做不到这一点。例如横竖屏的差异、图片来源不受我们控制等等原因。那么这个时候我们可以考虑将图片进行预先缩放。

二、背景图片预先缩放,减少缩放次数。

预先缩放图片之后,在试图每次显示的时候就每次都去缩放图片。而是采用我们预先缩放好的图片,着可以提高效率。

originalImage = Bitmap.createScaledBitmap(
originalImage, // 缩放图像
view.getWidth(), // 视图宽度
view.getHeight(), // 视图高度
true
); // 线性过滤器

背景图片采用预先缩放的技巧和自动缩放的frame刷新频率比较如下:

左边为自动缩放的刷新频率是每秒25个frame,右边是才有预先缩放技巧的刷新率是每秒50个frame 。效率提高了50%。

窗口背景的优化

视图有背景,每个窗口也是有背景的。每一Activity是一个窗口,每一个Activity都有不同得背景。界面的绘画顺序如下:窗口——跟视图 ——子视图。当我们的跟视图已经覆盖了整个窗口的时候 ,程序还是会画一个透明的窗口的背景,而这个背景用户是看不到的。我们就需要想办法让程序在这样的情况下去掉窗口背景,节约画窗口背景的时间提高效率。

删除窗口背景的方法:

一、java代码中

public void onCreate(Bundle icicle){
 super.onCreate(icicle);
 setContentView(R.layout.mainview);
 // 删除窗口背景
 getWindow().setBackgroundDrawable(null);
 ...
}

二、在xml文件中

首先在res/values/style.xml 文件中定义如下:<resources> <style name=”NoBackgroundTheme” parent=”android:Theme”> <item name=”android:windowBackground”>@null</item> </style> </resources>

<resources>
<style name="NoBackgroundTheme" parent="android:Theme">
 <item name="android:windowBackground">@null</item>
</style>
</resources>

然后在AndroidManifest.xml文件中 找到要去掉背景的activity 书写代码如下:

<activity android:name="MyApplication" android:theme="@style/NoBackgroundTheme">
...
</activity>

在xml中使用时首先要检查一下时候有NoBackgroundTheme这个参数可用。

可以看到如果画了透明的窗口背景的时候刷新频率是每秒43个frame,如果删除掉窗口背景刷新频率是53个frame。

分享到:
评论

相关推荐

    Android背景图片模糊虚化Demo

    "Android背景图片模糊虚化Demo"是针对这一功能的实例展示,旨在帮助开发者理解和实现类似效果。以下是对这个主题的详细解析: 1. **Android模糊效果原理** - Android中的模糊效果通常是通过图像处理技术实现的,如...

    android背景透明程序

    在Android平台上,创建一个背景透明的应用...总的来说,创建Android背景透明的应用需要对Android的主题系统、布局设计、性能优化以及API兼容性有深入理解。通过实践和调试,你可以打造出独特的、引人入胜的用户体验。

    深入探索Android卡顿优化(上)1

    【深入探索Android卡顿优化(上)】 在Android开发中,卡顿问题一直是开发者关注的重点。卡顿优化的难点在于问题的复杂性,它涉及代码、内存、绘制、IO、CPU等多个方面,而且线上问题的复现性低,通常与特定场景...

    Android背景音乐设置代码

    在Android应用开发中,为应用程序添加背景音乐是一个常见的需求,特别是在游戏或者音乐相关的应用中。本教程将深入探讨如何在Android中实现这一功能,重点聚焦于`PreferenceActivity`的使用以及如何选择SD卡上的音乐...

    Android 循环背景动画

    在Android开发中,创建动态、吸引人的用户界面是至关重要的,而循环背景动画就是实现这一目标的有效手段之一。本文将深入探讨如何在Android应用中实现循环背景动画,并着重讲解使用`ScrollingImageView`这一组件。 ...

    Android带图片背景的span

    "Android带图片背景的span"这个话题就是关于如何在TextView中创建具有图片背景的可操作文本片段(Span)。 Span在Android文本处理中扮演着重要角色,它允许我们对文本进行格式化,如改变颜色、大小、字体等。这里...

    Android splash 优化

    总之,优化Android的Splash界面需要兼顾美观与性能,通过减少布局复杂性、异步处理、资源预加载等方法,可以显著提升启动速度,提高用户满意度。同时,利用Android Studio提供的工具进行性能分析,能够更有效地定位...

    Android背景图片

    在Android应用开发中,背景...综上所述,Android背景图片的处理涵盖了多种技术和方法,开发者需要根据需求选择合适的策略,以实现美观且高效的用户界面。同时,考虑性能和兼容性,是Android应用开发中不容忽视的一环。

    AndroidStudio好看的背景图片

    "Android Studio好看的背景图片"这个主题聚焦于个性化和优化开发环境,让工作空间更具吸引力。以下是一些关于Android Studio背景图片以及如何自定义其界面的相关知识点: 1. **Android Studio个性化设置**:Android...

    blur android 高斯模糊 背景模糊

    在Android开发中,有时我们需要为应用添加一些视觉效果,比如背景模糊,这能提升界面的美观性和用户体验。本文将深入探讨如何在Android中实现高斯模糊(Gaussian Blur)效果,特别是通过`blurUtils`这个工具包来简化...

    android背景音乐服务的程序

    这个"android背景音乐服务的程序"显然专注于利用`MediaPlayer`类来播放音乐。`MediaPlayer`是Android SDK提供的一种核心组件,用于处理音频和视频流。在本文中,我们将深入探讨如何使用`MediaPlayer`来实现后台音乐...

    Android应用性能优化.pdf

    在深入探讨具体优化方法之前,了解一些基本概念和技术背景是非常必要的: - **Java与Kotlin语言**:这两种语言都是开发Android应用的主流选择。 - **Android SDK**:提供了构建高质量应用所需的工具集。 - **性能...

    android XML shape优化界面

    在Android开发中,XML Shape是UI设计中一个重要的组成部分,它允许开发者通过XML定义图形,如矩形、椭圆、线以及自定义形状,来创建各种背景和装饰元素。本教程将深入探讨如何利用XML Shape优化Android应用的界面,...

    Android优化技术详解

    然而,在这样的背景下,如何提高Android应用的性能和用户体验,成为了开发者们关注的重点。本文将详细介绍Android应用优化的技术方法和实践经验。 #### 二、性能优化 ##### 2.1 内存优化 - **减少对象创建**:避免...

    Android背景图片缓慢移动

    在本案例中,我们看到的标题"Android背景图片缓慢移动"可能是在模拟QQ空间iOS版本头部图片的动态效果。这个效果可以通过多种方式来实现,下面我们将详细探讨相关的技术点。 首先,我们可以使用`Animation`类或者`...

    Android 实现图片/背景(半部分&全部)圆角 源码

    在Android开发中,为图片或背景添加圆角效果是一种常见的需求,这可以提升应用的界面美观性和用户体验。本文将深入探讨如何实现图片和背景的半圆角及全圆角效果,并提供源码分析。 首先,要理解Android中实现圆角...

    《Android应用性能优化》

    在移动设备资源有限的背景下,优化能够确保应用运行流畅,延长电池寿命,并提高用户满意度。优化不仅涉及代码效率,还包括内存管理、UI流畅度、启动速度等多个方面。 1. **内存管理**:书中详细介绍了Android的内存...

    Android 帧动画优化实现可减少内存使用

    本篇文章将深入探讨如何优化Android帧动画以降低内存使用。 首先,理解帧动画的工作原理至关重要。帧动画是通过`AnimationDrawable`类实现的,它是一个可绘制对象,可以包含一系列`&lt;frame&gt;`元素,每个元素代表一帧...

    Android 动态设置程序activity背景图片源码

    在Android开发中,动态设置Activity背景...总结来说,动态设置Android Activity背景图片涉及对布局的理解、图像资源的处理以及可能的性能优化策略。开发者可以根据具体需求灵活运用不同的源码实现方式,提升用户体验。

    android 播放背景音乐

    以上就是Android中实现背景音乐播放的主要步骤和知识点,实际开发时还需要根据具体需求进行优化和调整。例如,可以使用服务(Service)来在后台持续播放音乐,或者使用音乐播放库(如ExoPlayer)以获得更好的性能和...

Global site tag (gtag.js) - Google Analytics