2014-01-29 125 views
0

我抓到了一个代码示例来捏和缩放图像。作品确定。问题是当我在我的应用程序中实现此代码时。我在这里有一个OutOfMemoryError:Android:OutOfMemoryError加载图像资源

view.setImageResource(R.drawable.planometro);

为了解决这个问题,我发现这个代码:

public Drawable getAssetImage (String filename) throws IOException { 

    AssetManager assets = getResources() getAssets().; 
    InputStream buffer = new BufferedInputStream ((assets.open ("drawable /" + filename +)) "png."); 
    Bitmap bitmap = BitmapFactory.decodeStream (buffer); 
    return new BitmapDrawable (getResources(), bitmap); 
} 

的问题是,这个代码是返回一个int,而不是绘制。我如何解决我的错误?

感谢

+1

缩小你的位图 –

+0

我该怎么办?码? – user3231711

+0

可能是你的图片有很高的分辨率 – Piyush

回答

0

试试这个

try { 
    Bitmap bitmap=((BitmapDrawable)activity.getResources().getDrawable(R.drawable.matches_placeholder_upcoming2x)).getBitmap(); 
    Drawable drawable = new BitmapDrawable(activity.getResources(),bitmap); 
    liveMatchHeaderContainer.setBackgroundDrawable(drawable);  

} catch (OutOfMemoryError E) { 
    E.printStackTrace(); 
} 
+0

如果我做一个backgroundDrawable,我的应用程序不工作,因为我想捏图像放大 – user3231711

0

这为我工作,尝试一下:

 ImageView image = (ImageView) findViewById(R.id.img); 
     try { 
      Bitmap bitmap = BitmapFactory.decodeResource(getResources(), 
        R.drawable.ic_launcher); 
//   Drawable d = new BitmapDrawable(getResources(), bitmap); 
      image.setBackgroundResource(R.drawable.ic_launcher); 

     } catch (OutOfMemoryError E) { 
      E.printStackTrace(); 
     } 
+0

此代码不起作用 – user3231711

+0

你使用什么项目生成目标api? –