Android Open Source - jmini3d Resource Loader






From Project

Back to project page jmini3d.

License

The source code is released under:

Copyright 2012 Mobialia http://www.mobialia.com/ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to ...

If you think the Android project jmini3d listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package jmini3d.android;
/*from ww  w  .ja v  a2s. c  o m*/
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.util.Log;

import java.io.IOException;
import java.io.InputStream;
import java.util.HashMap;

public class ResourceLoader {
  static final String TAG = "ResourceLoader";

  Context context;

  HashMap<String, Bitmap> customBitmaps = new HashMap<String, Bitmap>();

  public ResourceLoader(Context ctx) {
    this.context = ctx;
  }

  public Bitmap getImage(String image) {
    if (customBitmaps.containsKey(image)) {
      return customBitmaps.get(image);
    }

    if (image.lastIndexOf(".") > 0) {
      image = image.substring(0, image.lastIndexOf("."));
    }

    String uri = "drawable/" + image;
    int imageResource = context.getResources().getIdentifier(uri, null, context.getPackageName());

    if (imageResource == 0) {
      Log.e(TAG, "Image not found in resources: " + image);
      return null;
    }

    try {
      return makeBitmapFromInputStream(context.getResources().openRawResource(imageResource));
    } catch (Exception e) {
      e.printStackTrace();
      return null;
    }
  }

  public Bitmap makeBitmapFromInputStream(InputStream is) {
    Bitmap bitmap;
    try {
      bitmap = BitmapFactory.decodeStream(is);
    } finally {
      try {
        is.close();
      } catch (IOException e) {
        // Ignore.
      }
    }
    return bitmap;
  }

  public void freeBitmap(String name, Bitmap bitmap) {
    if (name != null && customBitmaps.containsKey(name)) {
//      customBitmaps.remove(name);
    } else {
      bitmap.recycle();
    }
  }

  public void addCustomBitmap(String name, Bitmap bitmap) {
    customBitmaps.put(name, bitmap);
  }

  public Context getContext() {
    return context;
  }

  public String loadRawString(int id) {
    try {
      InputStream inputStream = context.getResources().openRawResource(id);
      ;
      return inputStream2String(inputStream);
    } catch (Exception e) {
      return null;
    }
  }

  private String inputStream2String(InputStream inputStream) {
    try {
      byte[] b = new byte[inputStream.available()];
      inputStream.read(b);
      return new String(b);
    } catch (Exception e) {
      e.printStackTrace();
    }
    return null;
  }
}




Java Source Code List

cocoonjs.CocoonJsLinker.java
jmini3d.Blending.java
jmini3d.Camera.java
jmini3d.Color4.java
jmini3d.CubeMapTexture.java
jmini3d.Font.java
jmini3d.GpuObjectStatus.java
jmini3d.MatrixUtils.java
jmini3d.Object3d.java
jmini3d.Rect.java
jmini3d.SceneController.java
jmini3d.Scene.java
jmini3d.Texture.java
jmini3d.Utils.java
jmini3d.Vector3.java
jmini3d.android.Activity3d.java
jmini3d.android.GeometryBuffers.java
jmini3d.android.GlSurfaceView3d.java
jmini3d.android.GpuUploader.java
jmini3d.android.Program.java
jmini3d.android.Renderer3d.java
jmini3d.android.ResourceLoader.java
jmini3d.android.compat.CompatibilityWrapper5.java
jmini3d.android.demo.DemoActivity.java
jmini3d.android.input.InputController.java
jmini3d.demo.ArialFont.java
jmini3d.demo.CubeScene.java
jmini3d.demo.CubesScene.java
jmini3d.demo.DemoSceneController.java
jmini3d.demo.EnvMapCubeScene.java
jmini3d.demo.NormalMapScene.java
jmini3d.demo.ParentScene.java
jmini3d.demo.TeapotGeometry.java
jmini3d.demo.TeapotScene.java
jmini3d.geometry.BoxGeometry.java
jmini3d.geometry.Geometry.java
jmini3d.geometry.PlaneGeometry.java
jmini3d.geometry.SkyboxGeometry.java
jmini3d.geometry.SpriteGeometry.java
jmini3d.geometry.VariableGeometry.java
jmini3d.gwt.Canvas3d.java
jmini3d.gwt.EngineResources.java
jmini3d.gwt.EntryPoint3d.java
jmini3d.gwt.GeometryBuffers.java
jmini3d.gwt.GpuUploader.java
jmini3d.gwt.MyInt16Array.java
jmini3d.gwt.Program.java
jmini3d.gwt.Renderer3d.java
jmini3d.gwt.ResourceLoader.java
jmini3d.gwt.TextureLoadedListener.java
jmini3d.gwt.demo.DemoEntryPoint.java
jmini3d.gwt.input.InputController.java
jmini3d.input.KeyListener.java
jmini3d.input.TouchListener.java
jmini3d.input.TouchPointer.java
jmini3d.light.AmbientLight.java
jmini3d.light.DirectionalLight.java
jmini3d.light.Light.java
jmini3d.light.PointLight.java
jmini3d.material.Material.java
jmini3d.material.PhongMaterial.java
jmini3d.material.SpriteMaterial.java
jmini3d.utils.Fnt2Class.java
jmini3d.utils.Obj2Class.java