RippleDrawable的源代码在哪里? (Android L)

时间:2014-09-27 14:28:21

标签: android android-animation android-5.0-lollipop

我正在寻找RippleDrawable的源代码,这里提到https://developer.android.com/preview/material/animations.html#touch

实际上它必须退出,因为它在Android L中用于涟漪动画。

但是,也许这是我的错,我无法找到它......

感谢您的帮助。

这是我发现的解压缩android.jar: - ((

public class RippleDrawable extends LayerDrawable
{
public RippleDrawable(Drawable content, Drawable mask)
{
super((Drawable[])null); throw new RuntimeException("Stub!"); } 
public void setAlpha(int alpha) { throw new RuntimeException("Stub!"); } 
public void setColorFilter(ColorFilter cf) { throw new RuntimeException("Stub!"); } 
public int getOpacity() { throw new RuntimeException("Stub!"); } 
protected boolean onStateChange(int[] stateSet) { throw new RuntimeException("Stub!"); } 
protected void onBoundsChange(Rect bounds) { throw new RuntimeException("Stub!"); } 
public boolean setVisible(boolean visible, boolean restart) { throw new RuntimeException("Stub!"); } 
public boolean isStateful() { throw new RuntimeException("Stub!"); } 
public void setColor(ColorStateList color) { throw new RuntimeException("Stub!"); } 
public void inflate(Resources r, XmlPullParser parser, AttributeSet attrs,   Resources.Theme theme) throws XmlPullParserException, IOException { throw new   RuntimeException("Stub!"); } 
public boolean setDrawableByLayerId(int id, Drawable drawable) { throw new RuntimeException("Stub!"); } 
public void setPaddingMode(int mode) { throw new RuntimeException("Stub!"); } 
public void applyTheme(Resources.Theme t) { throw new RuntimeException("Stub!"); } 
public boolean canApplyTheme() { throw new RuntimeException("Stub!"); } 
public void setHotspot(float x, float y) { throw new RuntimeException("Stub!"); } 
public void setHotspotBounds(int left, int top, int right, int bottom) { throw new RuntimeException("Stub!"); } 
public void draw(Canvas canvas) { throw new RuntimeException("Stub!"); } 
public Rect getDirtyBounds() { throw new RuntimeException("Stub!"); } 
public Drawable.ConstantState getConstantState() { throw new RuntimeException("Stub!");        }

}

1 个答案:

答案 0 :(得分:3)

要了解其工作原理,您需要在头脑中分离构建和运行环境。

为了构建您的程序,您只需要针对Android API的定义进行构建。 Google发布的android.jar只包含定义API的存根。例如,API库中有许多标有“@hide”注释的公共方法。那些方法根本没有放到android.jar中。另外,正如您所注意到的,大多数方法的主体只是抛出运行时异常。

android.jar文件不是您的应用程序的一部分。在运行时,您的应用程序会绑定到手机上安装的真实Android库。它包括各种API方法的实际实现。

运行时可用的代码可在AOSP项目中找到。

不幸的是,谷歌尚未放弃L代码。如果没有从支持L的设备中提取android库并对其进行反编译,则无法查看RippleDrawable的代码

无赖!