使用背景图片,Android App变得非常慢

时间:2013-11-13 09:13:34

标签: android performance imageview

在我的应用程序菜单中添加了滑块和水平滑块代码。在水平布局内部拖线线性布局每个都是不同的背景。

如果我将提供相同的背景工作文件。如果我会给不同的背景应用程序变得非常慢。

下面给出了我的代码和布局。

我的布局代码:

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/relBg"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@drawable/img1" >

        <RelativeLayout
            android:id="@+id/relBg"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/img2" >

            <com.application.utils.HorizontalPager
                android:id="@+id/horizontal_pager"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >


<LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/homebg"" >

            <include
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                layout="@layout/homepageview" />
        </LinearLayout>

<LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:background="@drawable/cal_bg" >

            <include
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
                layout="@layout/calendarview" />
        </LinearLayout>

</com.application.utils.HorizontalPager>
      </RelativeLayout>
    </RelativeLayout>

图像尺寸仅为40kb。

在这两个使用不同图像的相对布局中,如果我使用这个应用程序变得非常慢。

我的代码:

LayoutInflater inflater = LayoutInflater.from(this);
        scrollView = (FacebookSlideView) inflater.inflate(R.layout.screen_scroll_with_list_menu, null);
        setContentView(scrollView);

        final Stack stack=new Stack();
        menu = inflater.inflate(R.layout.profile_menu, null);
        app = inflater.inflate(R.layout.homepage, null);

        btnSlide = (Button) app.findViewById(R.id.BtnSlide);
        fadeGray_Rel = (LinearLayout)app.findViewById(R.id.fadeGray_Rel);   
        fadeGray_Rel.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub
                slideAnimation(scrollView, menu);
            }
        });

如果我使用相同的图像,相对布局工作正常,不会变慢。

我的logcat详细信息:

11-13 14:37:24.834: I/Choreographer(2605): Skipped 34 frames!  The application may be doing too much work on its main thread.
11-13 14:37:24.838: D/OpenGLRenderer(2605): TextureCache::callback: name, removed size, mSize = 68, 11632640, 13043632
11-13 14:37:24.838: D/OpenGLRenderer(2605): TextureCache::get: create texture(0xb96d2358): name, size, mSize = 75, 1048576, 14092208
11-13 14:37:24.838: D/OpenGLRenderer(2605): TextureCache::callback: name, removed size, mSize = 69, 11632640, 2459568
11-13 14:37:25.078: D/OpenGLRenderer(2605): TextureCache::get: create texture(0xb96fdfa0): name, size, mSize = 76, 11632640, 14092208

感谢

1 个答案:

答案 0 :(得分:0)

你能用这段代码解释一下你想要实现的目标吗? 从日志中看,您的应用程序看起来消耗了大量资源。如果你提供的布局是完整的,那么我认为你应该选择像LinearLayout这样的轻量级选项。

顺便说一句,我注意到你的两个相对布局具有相同的id,你可能想要改变它。