2014-09-27 3 views
1

Ищу исходный код RippleDrawable, который упоминается здесь https://developer.android.com/preview/material/animations.html#touchГде находится исходный код RippleDrawable? (Android L)

и на самом деле она должна выходит, поскольку он используется в 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

Вы загрузили исходные коды Android L через Android SDK Manager, zip вверх (например, с 7-zip-файлами) в каталог Android L, а затем выполните поиск в zip-файле для класса RippleDrawable? Просто интересно ... – ChuongPham

+0

@ChuongPham Я сделал это, см. Мое редактирование –

+1

Хорошо, это очищает его сейчас. Да, класс 'RippleDrawable' экспортируется в' android.jar', но в исходных кодах 'Android L' нет соответствующей документации. Однако, когда я искал [RippleDrawable] (http://developer.android.com/reference/android/bluetooth/BluetoothDevice.html#q=RippleDrawable), нет указаний на страницу, которая документирует использование этого класса. Я думаю, что либо Google что-то пропустил, либо, так как Android L все еще находится в режиме предварительного просмотра, что они не предоставляют официальную документацию для него - в источнике и/или в Интернете по адресу http: // http: //developer.android.com/. – ChuongPham

ответ

3

Чтобы понять, как это работает, вы должны отделить, в вашей голове, сборку и запуск среды

В порядке. для создания вашей программы вам нужно построить только определений API для Android. Андроид.jar, который отправляет Google, содержит только заглушки, которые определяют API. В библиотеках API есть, например, множество общедоступных методов, Аннотации @hide. Эти методы не помещаются в android.jar вообще. Кроме того, как вы заметили, тела большинства методов просто бросают исключения во время выполнения.

Файл android.jar не входит в состав вашего приложения. Во время выполнения ваше приложение привязывается к реальной библиотеке Android, установленной на телефоне. Он включает в себя фактические реализации различных методов API.

Код, доступный во время выполнения, находится в проекте AOSP.

К сожалению, Google еще не сбросил код L. Не дотягивая библиотеку андроида от устройства с поддержкой L и не компилируя это, нет способа увидеть код для RippleDrawable

Bummer!

Смежные вопросы