2014-02-08 297 views
0

我正在存储和显示在我的视图中使用相机应用拍摄的图像。这些图像以不同视图显示在不同大小的图像视图中将图像缩放到不同的图像视图尺寸

例如,在一个页面中,我具有1/6屏幕大小显示,在另一个缩略图显示中,在另一个全屏幕大小显示中。我应该如何处理缩放?我开始使用位图,使用bp.compress(Bitmap.CompressFormat.JPEG,100,字节)进行压缩;并在图像视图中进行设置。这对于全屏显示来说并不好,它只适合缩略图显示。

随着这个我现在在一些观点显示从绘制文件夹中的一些图片,他们又看在不同的屏幕非常不同(如模拟器和三星Galaxy手机)

我已经看到各个岗位上的这些问题比如使用扩展imageview etcetc的自定义类。最好的路线是什么?感谢您的进一步建议

回答

2

这取决于你想要的结果是什么。对于较小的缩略图视图,您可以尝试应用中心裁剪,对于您正在查找的较大视图,您可能希望图像的大小与屏幕允许的一样大,同时保留纵横比。

为了让生活更简单,为什么不使用Square的Picasso图书馆?它处理很多你问的问题,并且是JAR形式的免费库。其中一个主要优点是简单的语法,它从文件系统和可绘制文件夹中获取图像。

它包括一些转换,你也可以创建一些你自己的,如果Square不能提供你需要的转换的话,这会增加一些附加的多功能性。

最后,它处理图像的缓存和我能记得的内容,它使内存中的缩放缓存图像与占用更多的大图像保持一致。

编码示例

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1); 
Picasso.with(context).load(new File(...)).into(imageView2); 

和缩略图,这样的事情可能是使用的

Picasso.with(context) 
    .load(url) 
    .resize(50, 50) 
    .centerCrop() 
    .into(imageView) 

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

+0

感谢我试图出来 – user3013499