<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<HTML style="overflow:auto;">
<HEAD>
<meta name="generator" content="JDiff v1.1.0">
<!-- Generated by the JDiff Javadoc doclet -->
<!-- (http://www.jdiff.org) -->
<meta name="description" content="JDiff is a Javadoc doclet which generates an HTML report of all the packages, classes, constructors, methods, and fields which have been removed, added or changed in any way, including their documentation, when two APIs are compared.">
<meta name="keywords" content="diff, jdiff, javadiff, java diff, java difference, API difference, difference between two APIs, API diff, Javadoc, doclet">
<TITLE>
android.support.v4.content.res.ResourcesCompat
</TITLE>
<link href="../../../../assets/android-developer-docs.css" rel="stylesheet" type="text/css" />
<link href="../stylesheet-jdiff.css" rel="stylesheet" type="text/css" />
<noscript>
<style type="text/css">
body{overflow:auto;}
#body-content{position:relative; top:0;}
#doc-content{overflow:visible;border-left:3px solid #666;}
#side-nav{padding:0;}
#side-nav .toggle-list ul {display:block;}
#resize-packages-nav{border-bottom:3px solid #666;}
</style>
</noscript>
<style type="text/css">
</style>
</HEAD>
<BODY>
<!-- Start of nav bar -->
<a name="top"></a>
<div id="header" style="margin-bottom:0;padding-bottom:0;">
<div id="headerLeft">
<a href="../../../../index.html" tabindex="-1" target="_top"><img src="../../../../assets/images/bg_logo.png" alt="Android Developers" /></a>
</div>
  <div id="headerRight">
  <div id="headerLinks">
<!-- <img src="/assets/images/icon_world.jpg" alt="" /> -->
<span class="text">
<!-- &nbsp;<a href="#">English</a> | -->
<nobr><a href="http://developer.android.com" target="_top">Android Developers</a> | <a href="http://www.android.com" target="_top">Android.com</a></nobr>
</span>
</div>
  <div class="and-diff-id" style="margin-top:6px;margin-right:8px;">
    <table class="diffspectable">
      <tr>
        <td colspan="2" class="diffspechead">API Diff Specification</td>
      </tr>
      <tr>
        <td class="diffspec" style="padding-top:.25em">To Level:</td>
        <td class="diffvaluenew" style="padding-top:.25em">23.1.0</td>
      </tr>
      <tr>
        <td class="diffspec">From Level:</td>
        <td class="diffvalueold">23.0.0</td>
      </tr>
      <tr>
        <td class="diffspec">Generated</td>
        <td class="diffvalue">2015.10.15 12:23</td>
      </tr>
    </table>
    </div><!-- End and-diff-id -->
  <div class="and-diff-id" style="margin-right:8px;">
    <table class="diffspectable">
      <tr>
        <td class="diffspec" colspan="2"><a href="jdiff_statistics.html">Statistics</a>
      </tr>
    </table>
  </div> <!-- End and-diff-id -->
  </div> <!-- End headerRight -->
  </div> <!-- End header -->
<div id="body-content" xstyle="padding:12px;padding-right:18px;">
<div id="doc-content" style="position:relative;">
<div id="mainBodyFluid">
<H2>
Class android.support.v4.content.res.<A HREF="../../../../reference/android/support/v4/content/res/ResourcesCompat.html" target="_top"><font size="+2"><code>ResourcesCompat</code></font></A>
</H2>
<a NAME="constructors"></a>
<a NAME="methods"></a>
<p>
<a NAME="Added"></a>
<TABLE summary="Added Methods" WIDTH="100%">
<TR>
  <TH VALIGN="TOP" COLSPAN=2>Added Methods</FONT></TD>
</TH>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.support.v4.content.res.ResourcesCompat.getColor_added(android.content.res.Resources, int, android.content.res.Resources.Theme)"></A>
  <nobr><code>int</code>&nbsp;<A HREF="../../../../reference/android/support/v4/content/res/ResourcesCompat.html#getColor(android.content.res.Resources, int, android.content.res.Resources.Theme)" target="_top"><code>getColor</code></A>(<code>Resources,</nobr> int<nobr>,</nobr> Theme<nobr><nobr></code>)</nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
<TR BGCOLOR="#FFFFFF" CLASS="TableRowColor">
  <TD VALIGN="TOP" WIDTH="25%">
  <A NAME="android.support.v4.content.res.ResourcesCompat.getColorStateList_added(android.content.res.Resources, int, android.content.res.Resources.Theme)"></A>
  <nobr><code>ColorStateList</code>&nbsp;<A HREF="../../../../reference/android/support/v4/content/res/ResourcesCompat.html#getColorStateList(android.content.res.Resources, int, android.content.res.Resources.Theme)" target="_top"><code>getColorStateList</code></A>(<code>Resources,</nobr> int<nobr>,</nobr> Theme<nobr><nobr></code>)</nobr>
  </TD>
  <TD>&nbsp;</TD>
</TR>
</TABLE>
&nbsp;
<a NAME="fields"></a>
      </div>	
      <div id="footer">
        <div id="copyright">
        Except as noted, this content is licensed under 
        <a href="http://creativecommons.org/licenses/by/2.5/"> Creative Commons Attribution 2.5</a>.
        For details and restrictions, see the <a href="/license.html">Content License</a>.
        </div>
      <div id="footerlinks">
      <p>
        <a href="http://www.android.com/terms.html">Site Terms of Service</a> -
        <a href="http://www.android.com/privacy.html">Privacy Policy</a> -
        <a href="http://www.android.com/branding.html">Brand Guidelines</a>
      </p>
    </div>
    </div> <!-- end footer -->
    </div><!-- end doc-content -->
    </div> <!-- end body-content --> 
<script src="http://www.google-analytics.com/ga.js" type="text/javascript">
</script>
<script type="text/javascript">
  try {
    var pageTracker = _gat._getTracker("UA-5831155-1");
    pageTracker._setAllowAnchor(true);
    pageTracker._initData();
    pageTracker._trackPageview();
  } catch(e) {}
</script>
</BODY>
</HTML>
