加载显示图像的活动时滞后

时间:2016-01-06 19:37:46

标签: android

请帮助!!!

让我先介绍一下我的应用。 这个程序是图像查看器。 第一个活动是gridview。  第二项活动是全屏图像。 当用户点击第一个活动的屏幕时,第二个活动开始。 在第二个Activity中,对于滑动图像,我使用了viewpager和我的自定义适配器(扩展了PagerAdapter)

然后问题: 在第一次活动时点击屏幕时,黑屏将显示约0.5秒,第二个活动开始。我不想看到这一点。 我想看到滑动图像的第一张图像而不是黑屏,但我不能自己做。我怎样才能做到这一点。或者我怎样才能避免黑屏。

请帮帮我。 下面是onCreate()的第二个活动

 @Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    Log.d("Activity", "Start");
    setContentView(R.layout.activity_fullscreen_view);
    viewPager = (ViewPager) findViewById(R.id.pager);
    Intent i = getIntent();
    String curDirPath = i.getStringExtra("currentpath");
    utils = new Utils(getApplicationContext(), curDirPath);
    adapter = new FullScreenImageAdapter(FullScreenViewActivity.this,
            utils.getFilePaths(), utils.audioFilePaths, utils.fileType, this);
    viewPager.setAdapter(adapter);
    viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
        @Override
        public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
            ...
        }
        @Override
        public void onPageSelected(int position) {
            ...
        }
        @Override
        public void onPageScrollStateChanged(int state) {
            ...
        }
    });
    viewPager.setCurrentItem(1);
    Log.d("Activity", "end");
}

这是第二项活动的召集部分。

Intent i = new Intent(_activity, FullScreenViewActivity.class);
i.putExtra("currentpath", newfile.toString());
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
_activity.startActivity(i);

这是使用Picasso加载图片的代码。

Picasso.with(mContext).load(new File(_imagePaths.get(position))).into(imgDisplay);

1 个答案:

答案 0 :(得分:0)

延迟是因为Activity正在尝试加载图像。尝试压缩图像或使用Picasso加快加载速度。

评论中要求的毕加索使用示例(来自文档):

// Resources, assets, files, content providers are all supported as image sources.

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);
Picasso.with(context).load(new File(...)).into(imageView3);

按照上面的picasso链接获取有关功能,设置和使用的完整文档。