am fb5c3dba: Fix issue #6440173: MenuItem.setIcon(Drawable) scaling incorrectly...

* commit 'fb5c3dba4ddac023cfd4cdcabdfdbcf343197c94':
  Fix issue #6440173: MenuItem.setIcon(Drawable) scaling incorrectly...
This commit is contained in:
Dianne Hackborn
2012-05-18 16:09:51 -07:00
committed by Android Git Automerger
2 changed files with 15 additions and 2 deletions

View File

@@ -630,7 +630,20 @@ public class Resources {
* Various types of objects will be returned depending on the underlying
* resource -- for example, a solid color, PNG image, scalable image, etc.
* The Drawable API hides these implementation details.
*
*
* <p class="note"><strong>Note:</strong> Prior to
* {@link android.os.Build.VERSION_CODES#JELLY_BEAN}, this function
* would not correctly retrieve the final configuration density when
* the resource ID passed here is an alias to another Drawable resource.
* This means that if the density configuration of the alias resource
* is different than the actual resource, the density of the returned
* Drawable would be incorrect, resulting in bad scaling. To work
* around this, you can instead retrieve the Drawable through
* {@link TypedArray#getDrawable TypedArray.getDrawable}. Use
* {@link android.content.Context#obtainStyledAttributes(int[])
* Context.obtainStyledAttributes} with
* an array containing the resource ID of interest to create the TypedArray.</p>
*
* @param id The desired resource identifier, as generated by the aapt
* tool. This integer encodes the package, type, and resource
* entry. The value 0 is an invalid identifier.

View File

@@ -703,7 +703,7 @@ static jint android_content_AssetManager_loadResourceValue(JNIEnv* env, jobject
#endif
uint32_t ref = ident;
if (resolve) {
block = res.resolveReference(&value, block, &ref);
block = res.resolveReference(&value, block, &ref, &typeSpecFlags, &config);
#if THROW_ON_BAD_ID
if (block == BAD_INDEX) {
jniThrowException(env, "java/lang/IllegalStateException", "Bad resource!");