更改每个片段的背景时,SwipeView太慢

时间:2014-12-14 21:15:51

标签: android performance android-fragments

首先,对不起我的英语。

我正在尝试将滑动视图添加到FragmentActivity。我跟随了来自http://developer.android.com/training/implementing-navigation/lateral.html的android doc。

我有FragmentActivity,FragmentPagerAdapter(我也尝试过FragmentStatePagerAdapter),片段以及doc所需的其他元素(xml等)。

我正在为即将推出的应用程序开发一个简单的基础,但到目前为止我只想为此滑动视图的每个位置显示不同背景的相同布局。

在Fragment中我有以下内容(FragmentPagerAdapter使用Bundle共享位置):

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View rootView = inflater.inflate(
            R.layout.fragment_initial_promo_swipe1, container, false);

    int position = this.getArguments().getInt("position", 0);
    switch(position){
        case 0:
            rootView.setBackgroundResource(R.drawable.intro1_screen);
            break;
        case 1:
            rootView.setBackgroundResource(R.drawable.intro2_screen);;
            break;
        case 2:
            rootView.setBackgroundResource(R.drawable.intro3_screen);
            break;
        default:
            rootView.setBackgroundResource(R.drawable.intro1_screen);
    }

    return rootView;

问题在于,只更改片段中视图的背景会使滑动速度极慢(在真实设备中)。日志显示消息:

“跳过86帧!应用程序可能在其主线程上做了太多工作。”

如果删除设置背景的代码,问题就会消失(但很明显所有页面都有相同的背景)。

我已经读过处理图像可能是这个问题的根源,但我想知道如何实现像这样的简单功能(刷卡视图在每个页面中显示不同的布局或至少相同的布局但是有不同的图像)。

提前致谢!

1 个答案:

答案 0 :(得分:0)

以防万一有人面临同样的问题:

当要加载的图像尺寸减小时,问题消失。我正在处理分辨率过高的图像。一旦图像变小,过渡就会变得更加平滑。