@Nullable private Uri getResourceUri(Integer model) { try { return Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + resources.getResourcePackageName(model) + '/' + resources.getResourceTypeName(model) + '/' + resources.getResourceEntryName(model)); } catch (Resources.NotFoundException e) { if (Log.isLoggable(TAG, Log.WARN)) { Log.w(TAG, "Received invalid resource id: " + model, e); } return null; } }
public static Uri getUriFromDrawableResId(Context context, int drawableResId) { StringBuilder builder = new StringBuilder().append(ContentResolver.SCHEME_ANDROID_RESOURCE) .append("://") .append(context.getResources().getResourcePackageName(drawableResId)) .append("/") .append(context.getResources().getResourceTypeName(drawableResId)) .append("/") .append(context.getResources().getResourceEntryName(drawableResId)); return Uri.parse(builder.toString()); }
public static Uri getUriFromDrawableResId(Context context, int drawableResId) { StringBuilder builder = new StringBuilder().append(ContentResolver.SCHEME_ANDROID_RESOURCE) .append("://") .append(context.getResources().getResourcePackageName(drawableResId)) .append("/") .append(context.getResources().getResourceTypeName(drawableResId)) .append("/") .append(context.getResources().getResourceEntryName(drawableResId)); return Uri.parse(builder.toString()); }
public static String getIdString(@Nullable Resources r, int resourceId) throws Resources.NotFoundException { if (r == null) { return getFallbackIdString(resourceId); } String prefix; String prefixSeparator; switch (getResourcePackageId(resourceId)) { case 0x7f: prefix = ""; prefixSeparator = ""; break; default: prefix = r.getResourcePackageName(resourceId); prefixSeparator = ":"; break; } String typeName = r.getResourceTypeName(resourceId); String entryName = r.getResourceEntryName(resourceId); StringBuilder sb = new StringBuilder( 1 + prefix.length() + prefixSeparator.length() + typeName.length() + 1 + entryName.length()); sb.append("@"); sb.append(prefix); sb.append(prefixSeparator); sb.append(typeName); sb.append("/"); sb.append(entryName); return sb.toString(); }
mResources.getResourcePackageName(mResourceId)); mTexture = BitmapFactory.decodeResource(mResources, identifier); } else {
try { Context current = context.createPackageContext(applicationPackageName, /*flags=*/ 0); String resourcePackageName = current.getResources().getResourcePackageName(iconResourceId); return applicationPackageName.equals(resourcePackageName); } catch (NameNotFoundException e) {
int identifier = mResources.getIdentifier(getFileNameWithoutExtension(textureName).toLowerCase(Locale.US), "drawable", mResources.getResourcePackageName(mResourceId)); bitmap = BitmapFactory.decodeResource(mResources, identifier); } else {
/** * get uri to any resource type * @param context - context * @param resId - resource id * @throws Resources.NotFoundException if the given ID does not exist. * @return - Uri to resource by given id */ public static final Uri getUriToResource(@NonNull Context context, @AnyRes int resId) throws Resources.NotFoundException { /** Return a Resources instance for your application's package. */ Resources res = context.getResources(); /** * Creates a Uri which parses the given encoded URI string. * @param uriString an RFC 2396-compliant, encoded URI * @throws NullPointerException if uriString is null * @return Uri for this given uri string */ Uri resUri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + res.getResourcePackageName(resId) + '/' + res.getResourceTypeName(resId) + '/' + res.getResourceEntryName(resId)); /** return uri */ return resUri; }
matLib.parse(materialLibPath, null, null); else matLib.parse(materialLibPath, mResources.getResourceTypeName(mResourceId), mResources.getResourcePackageName(mResourceId)); } else if(type.equals(USE_MATERIAL)) { currentMaterialName = parts.nextToken();
@Test public void loadVideoResourceUriString_fromName_withFrame_decodesFrame() { Resources resources = context.getResources(); int resourceId = ResourceIds.raw.video; Uri uri = new Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(resources.getResourcePackageName(resourceId)) .appendPath(resources.getResourceTypeName(resourceId)) .appendPath(resources.getResourceEntryName(resourceId)) .build(); Bitmap frame = concurrency.get( GlideApp.with(context) .asBitmap() .load(uri.toString()) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(frame).isNotNull(); } }
@Test public void loadVideoResourceUriString_fromName_decodesFrame() { Resources resources = context.getResources(); int resourceId = ResourceIds.raw.video; Uri uri = new Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(resources.getResourcePackageName(resourceId)) .appendPath(resources.getResourceTypeName(resourceId)) .appendPath(resources.getResourceEntryName(resourceId)) .build(); Bitmap frame = concurrency.get( GlideApp.with(context) .asBitmap() .load(uri.toString()) .submit()); assertThat(frame).isNotNull(); }
@Test public void loadVideoResourceUri_fromName_decodesFrame() { Resources resources = context.getResources(); int resourceId = ResourceIds.raw.video; Uri uri = new Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(resources.getResourcePackageName(resourceId)) .appendPath(resources.getResourceTypeName(resourceId)) .appendPath(resources.getResourceEntryName(resourceId)) .build(); Drawable frame = concurrency.get( GlideApp.with(context) .load(uri) .submit()); assertThat(frame).isNotNull(); }
@Test public void loadVideoResourceUri_fromName_withFrame_decodesFrame() { Resources resources = context.getResources(); int resourceId = ResourceIds.raw.video; Uri uri = new Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(resources.getResourcePackageName(resourceId)) .appendPath(resources.getResourceTypeName(resourceId)) .appendPath(resources.getResourceEntryName(resourceId)) .build(); Bitmap frame = concurrency.get( GlideApp.with(context) .asBitmap() .load(uri) .frame(TimeUnit.SECONDS.toMicros(1)) .submit()); assertThat(frame).isNotNull(); }
@Test public void loadVideoResourceUri_asBitmap_fromName_decodesFrame() { Resources resources = context.getResources(); int resourceId = ResourceIds.raw.video; Uri uri = new Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(resources.getResourcePackageName(resourceId)) .appendPath(resources.getResourceTypeName(resourceId)) .appendPath(resources.getResourceEntryName(resourceId)) .build(); Bitmap frame = concurrency.get( GlideApp.with(context) .asBitmap() .load(uri) .submit()); assertThat(frame).isNotNull(); }
} else { int identifier = mResources.getIdentifier(mesh.textureName, "drawable", mResources.getResourcePackageName(mResourceId)); if (identifier == 0) { throw new ParsingException("Couldn't find texture " + mesh.textureName);
Resources resources = context.getResources(); Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + resources.getResourcePackageName(resId) + '/' + resources.getResourceTypeName(resId) + '/' + resources.getResourceEntryName(resId) );
@Override public DataFetcher<T> getResourceFetcher(Integer model, int width, int height) { Uri uri = null; try { uri = Uri.parse(ContentResolver.SCHEME_ANDROID_RESOURCE + "://" + resources.getResourcePackageName(model) + '/' + resources.getResourceTypeName(model) + '/' + resources.getResourceEntryName(model)); } catch (Resources.NotFoundException e) { if (Log.isLoggable(TAG, Log.WARN)) { Log.w(TAG, "Received invalid resource id: " + model, e); } } if (uri != null) { return uriLoader.getResourceFetcher(uri, width, height); } else { return null; } } }
@Override public String getResourcePackageName(int resid) throws NotFoundException { if (idCaches.contains(resid)) { return FairyGlobal.getHostApplication().getPackageName(); } try { return super.getResourcePackageName(resid); } catch (NotFoundException e) { LogUtil.e("NotFoundException Try Following", Integer.toHexString(resid)); //就目前测试的情况来看,只有Coolpad、vivo、oppo等手机会在上面抛异常,走到这里来, //华为、三星、小米等手机不会到这里来。 if (!mPluginDescriptor.isStandalone() && ResourceUtil.isMainResId(resid)) { idCaches.add(resid); return FairyGlobal.getHostApplication().getPackageName(); } LogUtil.printStackTrace(); throw new NotFoundException("Unable to find resource ID #0x" + Integer.toHexString(resid)); } }
@Override public String getResourcePackageName(int resid) throws NotFoundException { try { return super.getResourcePackageName(resid); } catch (NotFoundException e) { return mHostResources.getResourcePackageName(resid); } }
final Resources resources = getResources(); final Uri uri = new Uri.Builder() .scheme(ContentResolver.SCHEME_ANDROID_RESOURCE) .authority(resources.getResourcePackageName(resId)) .appendPath(resources.getResourceTypeName(resId)) .appendPath(resources.getResourceEntryName(resId)) .build();