2017-04-07 44 views
0

我想通过使用寻呼机适配器滑动画廊图像并滑动来加载图像。它正在工作,但速度可能会更快。我希望能像android的图库应用一样快。为什么全屏图像滑块仍然很慢?

我已经尝试了很多滑行选项。如果我设置.override(600,200),它就会像我想要的那样快,但这当然不是一个合适的解决方案。我尝试使用第一张图像的treeObserver获取ImageView大小,以将所有后续图像缩放到适当的大小。但不幸的是,这并没有让它变得更快。

那么为什么它仍然很慢,我能做些什么来使它更快?

@Override 
public Object instantiateItem(ViewGroup container,final int position) {    
     ImageView imgView; 
     inflater = (LayoutInflater) _activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View viewLayout = inflater.inflate(R.layout.layout_fullscreen_image, container,false); 

     imgView = (ImageView) viewLayout.findViewById(R.id.img_view); 

     Glide.with(_activity).load(_imagePaths.get(position)) 
       .diskCacheStrategy(DiskCacheStrategy.SOURCE) 
       .dontAnimate() 
       //.override(600, 200) //this is really fast, but not a solution for best quality!! 
       .into(imgView); 

     ((ViewPager) container).addView(viewLayout); 

     return viewLayout; 


    } 

预先感谢您!

回答

0

根据屏幕高度和宽度使用picasso并调整图像大小。现在你正在页面适配器加载大图像,这就是为什么它花费时间来加载imageview上的图像,而刷卡查看寻呼机。

Picasso.with(this) 
       .load("your image path") 
       .resize(getWindowManager().getDefaultDisplay().getWidth(), getWindowManager().getDefaultDisplay().getHeight()) 
       .into(imageview); 
+0

所以,你说的使用毕加索加载大图像到寻呼机适配器会更快?我应该像我一样做,但应该毕加索呢?我认为滑翔速度更快。 – treesoft

+0

毕加索和滑翔都是一样的,但你需要根据屏幕大小调整图像大小,一些图像大于屏幕分辨率和慢速的应用程序性能。 –

+0

好吧,正如我写的,我试图用tree-observer获得imageView大小(当imageView实际绘制时获取宽度和高度)并通过.override(宽度,高度)滑动缩放图像。但这还不够快。但我会尝试使用windowManager的代码(同时使用滑动和毕加索)。谢谢你到目前为止! – treesoft