gpt4 book ai didi

android - RippleDrawable 的源代码在哪里? (安卓 L)

转载 作者:行者123 更新时间:2023-11-29 17:46:43 27 4
gpt4 key购买 nike

我正在寻找这里提到的 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!"); }

}

最佳答案

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

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

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

运行时可用的代码位于 AOSP 中项目。

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

的代码

糟糕!

关于android - RippleDrawable 的源代码在哪里? (安卓 L),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26075662/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com