2016-01-06 41 views
0

请帮助!!!正在加载显示图片的活动滞后

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

然后该问题: 当抽头上第一活动的屏幕,出现约0.5秒和第二活动黑屏开始。我不想看到。 我想看到滑动图像的第一个图像,而不是黑屏,但我不能自己做。我怎样才能做到这一点。或者我怎样才能避免黑屏。

请帮帮我。 下面是第二活动

@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"); 
} 

的的onCreate()这是第二活动的调用部分。

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

这是使用毕加索加载图像的代码。

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

你可以发布用于启动第二个活动的代码吗? –

+0

图像相当大,对吧?尝试使用Picasso或UniversalImageLoader加载它们的异步。 – aelimill

+0

感谢您的帮助。它是否能够通过毕加索加载SD卡文件?然后如何使用它。 –

回答

0

延迟是因为活动正在尝试加载图像。尝试压缩图像或使用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); 

按照上述对功能,设置和使用的完整文档毕加索链接。

+0

检查更新的答案 – AndroidMechanic

+0

你也可以在使用毕加索后分享你的代码吗? – AndroidMechanic

+0

和第二个活动的'onCreate()'方法。可能你正在做某件事造成延误。 – AndroidMechanic