package com.cooliris.media; import java.io.IOException; import java.io.InputStream; import android.graphics.Bitmap; import android.graphics.BitmapFactory; public final class ResourceTexture extends Texture { private final int mResourceId; private final boolean mScaled; @Override public boolean isCached() { return true; } public ResourceTexture(int resourceId, boolean scaled) { mResourceId = resourceId; mScaled = scaled; } @Override protected Bitmap load(RenderView view) { // Load a bitmap from the resource. Bitmap bitmap = null; if (mScaled) { BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; bitmap = BitmapFactory.decodeResource(view.getResources(), mResourceId, options); } else { InputStream inputStream = view.getResources().openRawResource(mResourceId); if (inputStream != null) { try { BitmapFactory.Options options = new BitmapFactory.Options(); options.inPreferredConfig = Bitmap.Config.ARGB_8888; bitmap = BitmapFactory.decodeStream(inputStream, null, options); } catch (Exception e) { } finally { try { inputStream.close(); } catch (IOException e) { /* ignore */ } } } } return bitmap; } }