android – 在运行时从另一个应用程序获取customview

weixin_38089340 2019-09-12 11:12:47
我正在努力从另一个应用程序获取CustomView.假设我有两个应用程序A和B.我知道CustomView的包名称,例如com.applicationb.CustomView.是否可以在运行时在应用程序A中创建此类的对象? 我的目标是找到一种方法来创建CustomViews并能够在我的应用程序中显示它们.但我希望他们(视图)是一个单独的apk,可以发布到Android Market,并作为某种扩展名下载. CustomView只会在屏幕上显示某些动画(例如落叶).它不适用于第一个应用程序中的任何数据. 编辑 我找到了这样的东西: @SuppressWarnings("rawtypes") Class c = Class.forName(package_name); Method m = c.getDeclaredMethod(method_name); m.setAccessible(true); Canvas can= (Canvas) m.invoke(null, null); // since there are no parameters, and called function is static 我希望这会奏效.我回头告诉你.
...全文
16 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
weixin_38090696 2019-09-12
  • 打赏
  • 举报
回复
正如我在这里所承认的那样是结果. String packageName = "com.exapmle.sth"; String className = "com.exapmle.sth.CustomView"; String apkName = getPackageManager().getApplicationInfo( packageName, 0).sourceDir; PathClassLoader myClassLoader = new dalvik.system.PathClassLoader( apkName, ClassLoader.getSystemClassLoader()); Class<?> handler = Class.forName(className, true, myClassLoader); Constructor[] m = handler.getConstructors(); for (int i = 0; i < m.length; i++) { if (m[i].getName().contains("CustomView")) { animation = (View)m[i].newInstance(new Object[] { this }); rootRL.addView(animation, new RelativeLayout.LayoutParams( RelativeLayout.LayoutParams.FILL_PARENT, RelativeLayout.LayoutParams.FILL_PARENT)); } } 使用此代码,可以使用应用程序A从应用程序B获取View.

435

社区成员

发帖
与我相关
我的任务
社区描述
其他技术讨论专区
其他 技术论坛(原bbs)
社区管理员
  • 其他技术讨论专区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧