Articles of bitmapfactory

最佳的使用BitmapFactory.Options.inSampleSize的速度

感谢Schermvlieger在anddev.org上提出这个问题, 我只是把他的问题复制到SO,因为没有人在另一个网站上回答,我也面临同样的问题。 我想知道什么是最佳的使用BitmapFactory.Options.inSampleSize关于显示图像的速度。 文档提到使用2的幂值,所以我正在使用2,4,8,16等。 我想知道的事情是: 我应该重新取样到比屏幕分辨率还要大的最小尺寸,还是应该抽样到足以避免OutOfMemoryError的大小? 如何计算一个图像的最大尺寸,仍然可以显示,而不是内存不足? 图像的颜色深度是否也起作用,以及显示的深度? 通过两种机制显示图像是有效的(大图像文件为BitmapFactory ,小图像为setImageURI() )我使用的是ImageSwitcher 。 它是否有助于在应用程序开始时创buildBitmap , BitmapFactory.Options和inTempStorage ,还是仅在需要时才创build它们?

位图分配,使用BitmapFactory.Options.inBitmap抛出IllegalArgumentException

我得到下一个exception:将inBitmap设置为true时,将问题解码到现有的位图中 ; 引起:java.lang.IllegalArgumentException:问题解码到现有的位图 在android.graphics.BitmapFactory.decodeResource(BitmapFactory.java:460) … 有趣的是,在运行时,相同的代码在不同的地方失败: API:4.4.2,Nexus 4 API:4.3.1,三星s3 这是我的代码,它是这个DevBytes:位图分配video中显示的副本。 private BitmapFactory.Options options; private Bitmap reusedBitmap; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final ImageView imageView = (ImageView) findViewById(R.id.image_view); // set the size to option, the images we will load by using this option options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; options.inMutable = true; […]

Android:decodeFile对于内部存储中的文件总是返回null

我有一个文件本地保存到应用程序的私人存储。 我已经validation了它的存在,但是每当我调用BitmapFactory.decodeFile时,它总是返回null。 如果我将文件保存为资源并使用ImageView setImageResource,它总是显示正常。 问题是什么? 这里是片段: filename = "test.png"; if (doesFileExist(filename)) Bitmap bMap = BitmapFactory.decodeFile(filename); 我也试过: Bitmap bMap = BitmapFactory.decodeFile(getFilesDir().getPath() + filename);

Android如何使用BitmapFactory选项来缩放图像

我想用BitmapFactory.decodeFile(path,选项)从SD卡解码图像。 我还希望大于2048×2048像素的图像缩小到最大2048×2048(保持比例)。 我可以在获取位图后手动执行此操作,但除了已经分配的字节外,还需要分配大量的字节。 我应该如何设置我的BitmapFactory.Options对象来获得该效果? 谢谢