相关疑难解决方法(0)

MediaStore.Images.Media.getBitmap和内存不足错误

我的代码是:

public Bitmap loadPhoto(Uri uri) {
    Bitmap scaled = null;
    try {
    scalled = Bitmap.createBitmap(
      MediaStore.Images.Media.getBitmap(getContentResolver(), uri),
      0,0,90, 90);

    if (scaled == null) { return null; }
    } catch(Exception e) { }
    return scaled;
}
Run Code Online (Sandbox Code Playgroud)

在这之后.我在ImageView中显示缩放.每张图片都来自设备相机.

每次,我都会收到错误:我从相机显示三张照片后内存不足.怎么解决这个?

android bitmap out-of-memory imageview

14
推荐指数
2
解决办法
2万
查看次数

如何解决SkImageDecoder :: Factory返回null

代码:

URL url = new URL(bitmapurl);

HttpURLConnection connection = (HttpURLConnection) url.openConnection();
     connection.setDoInput(true);
      connection.connect();
 InputStream input = connection.getInputStream();

bitmap[i] = BitmapFactory.decodeStream(input);
System.out.println("the bitmap is +bitmap[i]);
Run Code Online (Sandbox Code Playgroud)

Logcat中的错误:

03-29 15:01:50.044: DEBUG/skia(238): --- SkImageDecoder::Factory returned null
the bitmap is null
Run Code Online (Sandbox Code Playgroud)

怎样才能解决这个问题?

android

13
推荐指数
1
解决办法
2万
查看次数

如何获取位图信息,然后从internet-inputStream解码位图?

背景

假设我有一个源自某个图像文件的互联网的inputStream.

我希望获得有关图像文件的信息,然后才能对其进行解码.

它可用于多种用途,例如下采样以及在显示图像之前预览信息.

问题

我试图通过使用BufferedInputStream包装inputStream来标记和重置inputStream,但它不起作用:

inputStream=new BufferedInputStream(inputStream);
inputStream.mark(Integer.MAX_VALUE);
final BitmapFactory.Options options=new BitmapFactory.Options();
options.inJustDecodeBounds=true;
BitmapFactory.decodeStream(inputStream,null,options);
//this works fine. i get the options filled just right.

inputStream.reset();
final Bitmap bitmap=BitmapFactory.decodeStream(inputStream,null,options);
//this returns null
Run Code Online (Sandbox Code Playgroud)

为了从网址中获取inputStream,我使用:

public static InputStream getInputStreamFromInternet(final String urlString)
  {
  try
    {
    final URL url=new URL(urlString);
    final HttpURLConnection urlConnection=(HttpURLConnection)url.openConnection();
    final InputStream in=urlConnection.getInputStream();
    return in;
    }
  catch(final Exception e)
    {
    e.printStackTrace();
    }
  return null;
  }
Run Code Online (Sandbox Code Playgroud)

这个问题

如何让代码处理标记重置?

它与资源完美配合(实际上我甚至不需要创建一个新的BufferedInputStream来实现)但不能使用来自互联网的inputStream ...


编辑:

看来我的代码很好,有点......

在一些网站上(比如这一个这个),即使重置后也无法解码图像文件.

如果您解码位图(并使用inSampleSize),它可以解码它(只需要很长时间).

现在的问题是它为什么会发生,我该如何解决它.

android inputstream bitmap reset

9
推荐指数
1
解决办法
5103
查看次数

标签 统计

android ×3

bitmap ×2

imageview ×1

inputstream ×1

out-of-memory ×1

reset ×1