0

给定

  • 位于资产文件夹中的许多图像(10 - 15)(如实践所示,更好的方法是在资产中保留高分辨率图像)
  • Android UI线程(提前缓存drawables已经在后台线程中进行)

问题:

需要在绘制图像后平滑地显示所有图像,并且不阻塞UI 线程。

已经使用的方法:

  • 动态创建所需数量,ImageView然后调用.setImageDrawable(). 这需要很多时间,但最糟糕的是,即使在所有图像都绘制在它们的ImageView.
  • 创建一个对象并将所需sLayerDrawable的数组作为参数传递。然后通过调用Drawable把它放在一个也。此选项的行为与上述选项相同。ImageView.setImageDrawable()

有没有办法解决这个问题?还是 Android 设备无法应对?

4

2 回答 2

0

尝试毕加索图书馆:

http://square.github.io/picasso/

它支持资源:

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);
于 2017-09-20T06:04:13.267 回答
0

如果您需要图像之间的平滑过渡,请尝试 viewFlipper https://developer.android.com/reference/android/widget/ViewFlipper.html

基本上,您可以在 viewflipper 中添加 imageView 并启动动画以从上一个图像移动到下一个图像。我不确定您是否需要滚动等用户交互。如果用户需要在图像之间滚动,您可以尝试 viewPager。

请注意,Glide 确实提供了一些用于在占位符和要显示的图像之间切换的过渡效果。但不包括图像之间的过渡,您可以在这里查看 http://bumptech.github.io/glide/doc/transitions.html

我希望这会有所帮助,因为我不确定您是否要询问图像之间的过渡或渲染图像。

于 2017-09-20T07:05:57.340 回答