寻找资源

时间:2014-02-26 13:40:56

标签: android android-resources android-source

我正在尝试向我的项目添加SlidingDrawer的源代码,我可以在grepCode中轻松找到它。 问题是代码没有编译,对于Ex,有对本机资源的引用。

R.styleable.SlidingDrawer_orientation

我在GrepCodeAndroid repositories at GitHub都找不到。

有没有人在这种情况下遇到并设法解决了它? 感谢。

2 个答案:

答案 0 :(得分:1)

根据文件夹/ res

下的资源文件自动生成R文件

详细了解:http://developer.android.com/guide/topics/resources/providing-resources.html

因此,在这种情况下,您没有为 SlidingDrawer_orientation 定义资源...尝试从您要复制的项目中的/ res文件夹下查找相应的资源。 Android OS库中的一些资源被声明为内部/私有...因此您无法在代码中真正访问它们,如果您拥有适当的资源,您可以做的就是复制。

答案 1 :(得分:1)

所以我只是尝试这样做,我也编译了与资源相关的错误。这些资源不是android.R公开可用的。正如之前的回答所说,一些资源被宣布为内部/隐藏。

一旦我导入了我自己的frameworks_all.jar文件,我就能看到它们甚至构建我自己的小SlidingDrawer类,除了将文件复制到我自己的项目之外没有其他工作。

这是一本很好的指南,可帮助您开始了解/习惯使用Android的隐藏和内部类的概念: Amazing Super Awesome Guide to Android's Internal / Hidden API which will totally work and make your life better

注意这些属性似乎是隐藏的,而不是内部的,因此您只需要担心访问隐藏的组件。

如果您感兴趣,有点背景知识,android(android.R)的资源文件专门在frameworks / base中编译。您想要的属性似乎不存在于其自身,I.E。框架基础中没有可存在R.styleable.SlidingDrawer_orientation的xml文件。这就是为什么你不能找到它。但是,有一个属性文件:frameworks / base / core / res / res / values / attrs.xml,您可以找到列为以下属性的方向:

<!-- SlidingDrawer specific attributes. These attributes are used to configure
     a SlidingDrawer from XML. -->
<declare-styleable name="SlidingDrawer">
    <!-- Identifier for the child that represents the drawer's handle. -->
    <attr name="handle" format="reference" />
    <!-- Identifier for the child that represents the drawer's content. -->
    <attr name="content" format="reference" />
    <!-- Orientation of the SlidingDrawer. -->
    <attr name="orientation" />
...

似乎android标记了所有隐藏的可设置属性,因为整个部分都是从公共代码中隐藏的。我不确定这个R文件是如何构造的具体细节,我不得不深入研究make文件。无论哪种方式,结束绒毛,重申您需要做的就是访问内部/隐藏组件。