Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将图像缩放到不同的imageview大小_Android - Fatal编程技术网

Android 将图像缩放到不同的imageview大小

Android 将图像缩放到不同的imageview大小,android,Android,我正在我的视图中存储和显示使用摄像头应用程序拍摄的图像。这些图像显示在不同视图中不同大小的图像视图中 例如,在一个页面中,我有一个1/6屏幕大小的显示,在另一个页面中,我有一个缩略图显示,在另一个页面中,我有一个全屏幕大小的显示。我应该如何处理缩放 起初,我拍摄位图,使用bp.compress(bitmap.CompressFormat.JPEG,100,字节)进行压缩;并在图像视图中进行设置。这对于全屏幕显示来说不是很好,它只适合缩略图显示 除此之外,我还在一些视图中显示了drawable文件

我正在我的视图中存储和显示使用摄像头应用程序拍摄的图像。这些图像显示在不同视图中不同大小的图像视图中

例如,在一个页面中,我有一个1/6屏幕大小的显示,在另一个页面中,我有一个缩略图显示,在另一个页面中,我有一个全屏幕大小的显示。我应该如何处理缩放

起初,我拍摄位图,使用bp.compress(bitmap.CompressFormat.JPEG,100,字节)进行压缩;并在图像视图中进行设置。这对于全屏幕显示来说不是很好,它只适合缩略图显示

除此之外,我还在一些视图中显示了drawable文件夹中的一些图像,它们在不同的屏幕上看起来也非常不同(例如emulator和三星galaxy手机)


我看到过关于这些问题的各种帖子,比如使用自定义类扩展imageview等。最好的路线是什么?提前感谢您的建议

这取决于您想要的结果。对于较小的缩略图视图,您可以尝试应用中心裁剪,对于正在查找的较大视图,您可能希望图像尽可能大,同时保留纵横比

为了让生活更简单,为什么不使用广场上的毕加索图书馆呢?它可以处理您的许多请求,并且是一个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)