Android Open Source - GuiLib Res Util






From Project

Back to project page GuiLib.

License

The source code is released under:

Apache License

If you think the Android project GuiLib 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

/*
 * Copyright (C) 2010 Gandulf Kohlweiss/*  w w  w. j  a  v  a 2s  .c om*/
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.gandulf.guilib.util;

import java.io.ByteArrayOutputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
import java.util.List;

import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.text.TextUtils;

/**
 * Utility class to bundle resource helper methods
 * 
 */
public class ResUtil {

  public static final int getString(Class<?> clazz, String name) {

    int value = 0;

    try {
      value = (Integer) clazz.getDeclaredField(name).get(null);
    } catch (NoSuchFieldException e) {
      value = -1;
    } catch (Exception e) {
      Debug.error(e);
      value = -1;
    }

    return value;
  }

  public static String loadResToString(int resId, Context ctx) {

    try {
      InputStream is = ctx.getResources().openRawResource(resId);

      byte[] buffer = new byte[4096];
      ByteArrayOutputStream baos = new ByteArrayOutputStream();

      while (true) {
        int read = is.read(buffer);

        if (read == -1) {
          break;
        }

        baos.write(buffer, 0, read);
      }

      baos.close();
      is.close();

      String data = baos.toString();

      return data;
    } catch (Exception e) {
      Debug.error(e);
      return null;
    }

  }

  public static String loadAssestToString(String fileName, Context ctx) {

    try {
      InputStream is = ctx.getAssets().open(fileName);

      byte[] buffer = new byte[4096];
      ByteArrayOutputStream baos = new ByteArrayOutputStream();

      while (true) {
        int read = is.read(buffer);

        if (read == -1) {
          break;
        }

        baos.write(buffer, 0, read);
      }

      baos.close();
      is.close();

      String data = baos.toString();

      return data;
    } catch (Exception e) {
      Debug.error(e);
      return null;
    }

  }

  public static Drawable getDrawableByUri(Context context, Uri mUri) {
    Drawable d = null;
    if (mUri != null) {
      String scheme = mUri.getScheme();

      if (ContentResolver.SCHEME_ANDROID_RESOURCE.equals(scheme)) {
        try {

          // Load drawable through Resources, to get the source density information
          OpenResourceIdResult r = getResourceId(context, mUri);
          d = r.r.getDrawable(r.id);
        } catch (Exception e) {
          Debug.warning("Unable to open content: " + mUri, e);
        }
      } else if (ContentResolver.SCHEME_CONTENT.equals(scheme) || ContentResolver.SCHEME_FILE.equals(scheme)) {
        try {
          d = Drawable.createFromStream(context.getContentResolver().openInputStream(mUri), null);
        } catch (Exception e) {
          Debug.warning("Unable to open content: " + mUri, e);
        }
      } else {
        d = Drawable.createFromPath(mUri.toString());
      }

      if (d == null) {
        Debug.verbose("resolveUri failed on bad uri: " + mUri);
      }
    }

    return d;

  }

  public static int getResourceIdForDrawable(Context _context, String resPackage, String resName) {
    return _context.getResources().getIdentifier(resName, "drawable", resPackage);
  }

  /**
   * A resource identified by the {@link Resources} that contains it, and a resource id.
   * 
   * @hide
   */
  public static class OpenResourceIdResult {
    public Resources r;
    public int id;
  }

  /**
   * Resolves an android.resource URI to a {@link Resources} and a resource id.
   * 
   * @hide
   */
  protected static OpenResourceIdResult getResourceId(Context mContext, Uri uri) throws FileNotFoundException {
    String authority = uri.getAuthority();
    Resources r;
    if (TextUtils.isEmpty(authority)) {
      throw new FileNotFoundException("No authority: " + uri);
    } else {
      try {
        r = mContext.getPackageManager().getResourcesForApplication(authority);
      } catch (NameNotFoundException ex) {
        throw new FileNotFoundException("No package found for authority: " + uri);
      }
    }
    List<String> path = uri.getPathSegments();
    if (path == null) {
      throw new FileNotFoundException("No path: " + uri);
    }
    int len = path.size();
    int id;
    if (len == 1) {
      try {
        id = Integer.parseInt(path.get(0));
      } catch (NumberFormatException e) {
        throw new FileNotFoundException("Single path segment is not a resource ID: " + uri);
      }
    } else if (len == 2) {
      id = r.getIdentifier(path.get(1), path.get(0), authority);
    } else {
      throw new FileNotFoundException("More than two path segments: " + uri);
    }
    if (id == 0) {
      throw new FileNotFoundException("No resource found for: " + uri);
    }
    OpenResourceIdResult res = new OpenResourceIdResult();
    res.r = r;
    res.id = id;
    return res;
  }
}




Java Source Code List

au.com.bytecode.opencsv.CSVReader.java
com.ecloud.pulltozoomview.PullToZoomScrollView.java
com.gandulf.guilib.data.OpenArrayAdapter.java
com.gandulf.guilib.data.OpenFilter.java
com.gandulf.guilib.download.AbstractDownloader.java
com.gandulf.guilib.download.DownloadBroadcastReceiver.java
com.gandulf.guilib.download.DownloaderGinger.java
com.gandulf.guilib.download.DownloaderWrapper.java
com.gandulf.guilib.download.Downloader.java
com.gandulf.guilib.download.MediaScannerWrapper.java
com.gandulf.guilib.download.UnzipIntentService.java
com.gandulf.guilib.listener.CheckableListenable.java
com.gandulf.guilib.listener.OnCheckedChangeListener.java
com.gandulf.guilib.util.ColorUtil.java
com.gandulf.guilib.util.Debug.java
com.gandulf.guilib.util.DefaultTextWatcher.java
com.gandulf.guilib.util.DirectoryFileFilter.java
com.gandulf.guilib.util.FileFileFilter.java
com.gandulf.guilib.util.ListViewCompat.java
com.gandulf.guilib.util.MathUtil.java
com.gandulf.guilib.util.ResUtil.java
com.gandulf.guilib.view.ColorPickerDialog.java
com.gandulf.guilib.view.DynamicListViewEx.java
com.gandulf.guilib.view.HackeyDrawerLayout.java
com.gandulf.guilib.view.SeekBarEx.java
com.gandulf.guilib.view.VersionInfoDialog.java
com.gandulf.guilib.view.ViewScroller.java
com.gandulf.guilib.view.adapter.MultiFragmentPagerAdapter.java
com.getbase.floatingactionbutton.AddFloatingActionButton.java
com.getbase.floatingactionbutton.FloatingActionButton.java
com.getbase.floatingactionbutton.FloatingActionsMenu.java
com.github.amlcurran.showcaseview.AnimationFactory.java
com.github.amlcurran.showcaseview.AnimatorAnimationFactory.java
com.github.amlcurran.showcaseview.ApiUtils.java
com.github.amlcurran.showcaseview.Calculator.java
com.github.amlcurran.showcaseview.NewShowcaseDrawer.java
com.github.amlcurran.showcaseview.OnShowcaseEventListener.java
com.github.amlcurran.showcaseview.ShotStateStore.java
com.github.amlcurran.showcaseview.ShowcaseAreaCalculator.java
com.github.amlcurran.showcaseview.ShowcaseDrawer.java
com.github.amlcurran.showcaseview.ShowcaseView.java
com.github.amlcurran.showcaseview.StandardShowcaseDrawer.java
com.github.amlcurran.showcaseview.TextDrawer.java
com.github.amlcurran.showcaseview.targets.ActionBarReflector.java
com.github.amlcurran.showcaseview.targets.ActionBarViewWrapper.java
com.github.amlcurran.showcaseview.targets.ActionItemTarget.java
com.github.amlcurran.showcaseview.targets.ActionViewTarget.java
com.github.amlcurran.showcaseview.targets.AppCompatReflector.java
com.github.amlcurran.showcaseview.targets.PointTarget.java
com.github.amlcurran.showcaseview.targets.ReflectorFactory.java
com.github.amlcurran.showcaseview.targets.Reflector.java
com.github.amlcurran.showcaseview.targets.SherlockReflector.java
com.github.amlcurran.showcaseview.targets.Target.java
com.github.amlcurran.showcaseview.targets.ViewTarget.java
com.sothree.slidinguppanel.SlidingUpPanelLayout.java
com.sothree.slidinguppanel.ViewDragHelper.java
com.thebnich.floatinghintedittext.FloatingHintEditText.java
com.thebnich.floatinghintedittext.FloatingHintTextView.java
com.wefika.flowlayout.FlowLayout.java
de.hdodenhof.circleimageview.CircleImageView.java
uk.co.senab.photoview.Compat.java
uk.co.senab.photoview.PhotoViewAttacher.java
uk.co.senab.photoview.PhotoView.java
uk.co.senab.photoview.SDK16.java
uk.co.senab.photoview.ScrollerProxy.java
uk.co.senab.photoview.VersionedGestureDetector.java
uk.me.lewisdeane.ldialogs.BaseDialog.java
uk.me.lewisdeane.ldialogs.CustomDialog.java
uk.me.lewisdeane.ldialogs.CustomListAdapter.java