在较小的sdk版本中进行分页时,viewpager减速

时间:2012-12-05 05:05:23

标签: android android-viewpager fragment android-fragmentactivity android-support-library

我必须在我的项目中使用比15更小的sdk版本,因为我的字体在使用sdk时崩溃了:15,这是截图:

enter image description here

但是当我使用较低的sdk版本时,我的ViewPager在其他活动中减速,这是ViewPager活动的代码:

public class MainActivity extends FragmentActivity {

    private boolean async = false;

    private class MyFragment extends Fragment {

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

            Bundle b = getArguments();
            final int position = b.getInt("position");

            View v = inflater.inflate(R.layout.fragment, null);
            final ImageView img = (ImageView) v.findViewById(R.id.img);

            if (!async) {
                Bitmap bmp = BitmapFactory.decodeFile("/mnt/sdcard/image/"
                        + shortcuts[position] + ".jpg");
                img.setImageBitmap(bmp);

                async = true;
            } else {
                AsyncTask<Integer, Integer, Integer> task = new AsyncTask<Integer, Integer, Integer>() {

                    Bitmap bmp;

                    @Override
                    protected void onProgressUpdate(Integer... values) {
                        img.setImageBitmap(bmp);

                        super.onProgressUpdate(values);
                    }

                    @Override
                    protected Integer doInBackground(Integer... params) {
                        bmp = BitmapFactory.decodeFile("/mnt/sdcard/image/"
                                + shortcuts[params[0]] + ".jpg");
                        publishProgress();

                        return null;
                    }

                };
                task.execute(position);
            }

            return v;
        }
    }

    private class MyAdapter extends FragmentPagerAdapter {

        public MyAdapter(FragmentManager fm) {
            super(fm);
        }

        @Override
        public Fragment getItem(int position) {
            Fragment f = new MyFragment();

            Bundle b = new Bundle();
            b.putInt("position", position);
            f.setArguments(b);

            return f;
        }

        @Override
        public int getCount() {
            return shortcuts.length;
        }
    }

    private int[] shortcuts = new int[] { 1, 2, 3, 4, 5, 6 };

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        FragmentManager fm = getSupportFragmentManager();
        MyAdapter pagerAdapter = new MyAdapter(fm);
        pager.setAdapter(pagerAdapter);
        pager.setOffscreenPageLimit(3);
    }
}

当我设置android:targetSdkVersion="15"时,它运行良好,但是当设置为10时,结果非常慢。更改页面时结果很慢,我该如何解决?我的android-support-v4.jar文件是385,685字节。

0 个答案:

没有答案