android生成txt文件项目中的R文件的生成与什么相关

关于Android项目中添加图片等资源在R文件中不生成的问题
来源:博客园
最近做项目遇到在res/drawable-hdpi/目录下添加.gif图片,而在R文件中不自动生成代码的情况,发现是文件命名问题,.gif文件名有的是以阿拉伯数字开头的,导致了出错。 关于资源文件的命名,要记住 资源文件只能以小写字母和下划线做首字母,随后的名字中只能出现 [a-z0-9_.] 这些字符 。
免责声明:本站部分内容、图片、文字、视频等来自于互联网,仅供大家学习与交流。相关内容如涉嫌侵犯您的知识产权或其他合法权益,请向本站发送有效通知,我们会及时处理。反馈邮箱&&&&。
学生服务号
在线咨询,奖学金返现,名师点评,等你来互动13664人阅读
Android(1)
很多时候我们会遇到工程中的R.java文件丢失,必要急,修复很简单。
方法 1:右击你的工程(项目)——&Android Tools——&Fix Project Properties 即可。
方法 2: &右击你的工程(项目)——&Properties——&Android ——& 选择相应的target 然后 点击 apply 即可。
注意:也不要自己创建R.java 类文件,上面两个方法总有一个可以用的,呵呵。
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:292632次
积分:4976
积分:4976
排名:第5611名
原创:217篇
转载:12篇
评论:32条
(1)(2)(1)(1)(3)(5)(2)(1)(1)(14)(21)(8)(17)(12)(21)(22)(12)(7)(16)(18)(18)(20)(5)(1)(Android)关于获取资源文件R中的数据
通常我们都会使用context.getResources().getIdentifier(name, type,context.getPackageName())的方法去获取R.java中的数据。
type——R其中的内部类名,如"drawable","string","color","dimen","layout"等,这也是我们常用的关于界面所需要获取的数据类型。
name——R内部类中的static变量名称,如"appname"等,这些都是有用户在xml文件中定义的,包括layout,drawable文件中xml的文件名称。
最后一个参数就是apk的包名。
其实为何使用context.getResources().getIdentifier来获取资源的数值,很简单,在开发属于自己的sdk的时候,因为你的资源文件和jar包供给其他人使用,在界面方面自然都会使用此方法来获取资源对应数值。
接着回到正题,因为在开发属于自己的控件,用到了attr自定义属性,在期间发现一个问题,即styleable的数值无法使用context.getResources().getIdentifier来获取,结果永远都是0,而且styleable中还包括数组数据,所以最后还是用java的反射方法来获取。上代码:
* 对于context.getResources().getIdentifier无法获取的数据,或者数组
* 资源反射值
* @paramcontext
* @param name
* @param type
private static Object getResourceId(Context context,String name, String type) {
String className = context.getPackageName() +".R";
Class cls = Class.forName(className);
for (Class childClass : cls.getClasses()) {
String simple = childClass.getSimpleName();
if (simple.equals(type)) {
for (Field field : childClass.getFields()) {
String fieldName = field.getName();
if (fieldName.equals(name)) {
System.out.println(fieldName);
return field.get(null);
} catch (Exception e) {
e.printStackTrace();
*context.getResources().getIdentifier无法获取到styleable的数据
* @paramcontext
* @param name
public static int getStyleable(Context context, Stringname) {
return ((Integer)getResourceId(context, name,"styleable")).intValue();
* 获取styleable的ID号数组
* @paramcontext
* @param name
public static int[] getStyleableArray(Context context,String name) {
return (int[])getResourceId(context, name,"styleable");15:37 提问
android中BuildConfig文件和R文件是干什么用的?
android中BuildConfig文件和R文件是干什么用的?
android中BuildConfig文件和R文件是干什么用的?
按赞数排序
1.src:存放所有的*.java源程序。
2.gen:为ADT插件自动生成的代码文件保存路径,里面的R.java将保存所有的资源ID。
3.assets:可以存放项目一些较大的资源文件,例如:图片、音乐、字体等。
4.res:可以存放项目中所有的资源文件,例如:图片(*.png、*.jpg)、文本等。
5.res/drawable-hdpi:保存高分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
6.res/drawable-ldpi:保存低分辩率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
7.res/drawable-mdpi:保存中等分辨率图片资源,可以使用Resources.getDrawable(id)可以获得资源类型。
8.res/layout:存放所有的布局文件,主要是用于排列不同的显示组件,在Android程序中要读取此配置。
9.res/values:
存放一些资源文件的信息,用于读取文本资源,在本文件夹之中有一些约定的文件名称:
· arrays.xml:定义数组数据;(在个这个xml命名的时候可以随便起名,因为最后用的时候只是用到写在这个xml文件中的array的名字)
R文件是自动生成的,就比如你新建了个textview 那么R文件就会生成相应的数据与其对应。
在gen文件夹下都是系统自动生成的,R.java文件包括了所有res下所有xml文件对应的Id,如果R文件丢失说明xml文件有错误
BuildConfig.java 与调试有关,来实现Debug下运行程序
R文件自动生成的一个类似字典的文件,我是这么认为的,所有的资源在这里面都是int的变量作为唯一标识。
其他相似问题

我要回帖

更多关于 android 生成pdf文件 的文章

 

随机推荐