天天看點

Android中調用隐藏類中的方法

在寫Android的時候,有些類是隐藏類,因而無法直接調用,比如AnimatedRotateDrawable這個類,該類類名上有@hide标注,表明該類是一個隐藏類。若想通過該類的執行個體調用setFramesDuration來設定對應的幀播放時間來說,無法實作。下面通過反射的方法來調用該方法,具體代碼如下:

第一句代碼

先看下rotate.xml裡面的代碼:

在xml裡面可以設定frameDuration來控制幀的播放時間,在Java代碼中先通過AnimatedRotateDrawable擷取Drawable執行個體,然後通過反射擷取該執行個體對應的setFramesDuration方法Method的執行個體,最後通過反射m1.invoke(drawable,50)調用對應的方法。方法很簡單,就是通過反射來擷取隐藏類的對應方法,然後通過反射的方式調用該方法,進而完成相應的功能。

繼續閱讀