Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在较小的sdk版本中分页时,viewpager速度会减慢_Android_Android Viewpager_Fragment_Android Fragmentactivity_Android Support Library - Fatal编程技术网

Android 在较小的sdk版本中分页时,viewpager速度会减慢

Android 在较小的sdk版本中分页时,viewpager速度会减慢,android,android-viewpager,fragment,android-fragmentactivity,android-support-library,Android,Android Viewpager,Fragment,Android Fragmentactivity,Android Support Library,在我的项目中,我必须使用比15小的sdk版本,因为我的字体在使用sdk:15时崩溃,下面是一个屏幕截图: 但当我使用较低版本的sdk时,我的ViewPager在其他活动中会减慢速度,以下是我的ViewPager活动代码: public class MainActivity extends FragmentActivity { private boolean async = false; private class MyFragment extends Fragment {

在我的项目中,我必须使用比15小的sdk版本,因为我的字体在使用sdk:15时崩溃,下面是一个屏幕截图:

但当我使用较低版本的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);
    }
}
public类MainActivity扩展了FragmentActivity{
私有布尔异步=false;
私有类MyFragment扩展了Fragment{
@凌驾
创建视图上的公共视图(布局、充气机、视图组容器、,
Bundle savedInstanceState){
Bundle b=getArguments();
最终整数位置=b.getInt(“位置”);
视图v=充气机充气(R.layout.fragment,空);
最终图像视图img=(图像视图)v.findviewbyd(R.id.img);
如果(!异步){
位图bmp=BitmapFactory.decodeFile(“/mnt/sdcard/image/”
+快捷方式[位置]+“.jpg”);
设置图像位图(bmp);
异步=真;
}否则{
AsyncTask任务=新建AsyncTask(){
位图bmp;
@凌驾
受保护的void onProgressUpdate(整型…值){
设置图像位图(bmp);
super.onProgressUpdate(值);
}
@凌驾
受保护的整数doInBackground(整数…参数){
bmp=BitmapFactory.decodeFile(“/mnt/sdcard/image/”
+快捷方式[参数[0]]+“.jpg”);
出版进度();
返回null;
}
};
任务。执行(位置);
}
返回v;
}
}
私有类MyAdapter扩展了FragmentPagerAdapter{
公共MyAdapter(FragmentManager fm){
超级(fm);
}
@凌驾
公共片段getItem(int位置){
片段f=新的MyFragment();
Bundle b=新Bundle();
b、 putInt(“位置”,位置);
f、 设置参数(b);
返回f;
}
@凌驾
public int getCount(){
返回快捷方式。长度;
}
}
私有int[]快捷方式=新int[]{1,2,3,4,5,6};
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ViewPager pager=(ViewPager)findViewById(R.id.pager);
FragmentManager fm=getSupportFragmentManager();
MyAdapter pagerAdapter=新的MyAdapter(fm);
寻呼机设置适配器(pagerAdapter);
pager.setOffscreenPageLimit(3);
}
}

当我设置android:targetSdkVersion=“15”时,它运行得很好,但当设置为10时,结果非常慢。更改页面时,结果很慢,如何修复?我的android-support-v4.jar文件是385685字节。

你解决了这个问题吗?没有,我只是将我的sdk版本更改为较低的版本。