我从android开始,我想按照in this answer所述向单元格添加边框。所以我创建了我的cell_background.xml文件,Eclipse在res\drawable
中创建并包含
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape= "rectangle" >
<solid android:color="#000"/>
<stroke android:width="1dp" android:color="#ff9"/>
</shape>
读过drawable文件夹有几个问题后,我将其逐字复制到res\drawable-*dpi
目录
现在,我的应用程序在以下行崩溃
Drawable drawable = Resources.getSystem().getDrawable(R.drawable.cell_background);
有这个例外
12-16 14:26:28.624: E/AndroidRuntime(533): Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f020000
项目和模拟器都设置为v3.0
有什么想法吗?我已经清理并重建了该项目,但它仍然崩溃。
答案 0 :(得分:7)
问题是您使用Resources.getSystem(),它将为您提供对系统资源的引用。您应该使用context.getResources()代替。
答案 1 :(得分:2)
尝试使用以下代码检查资源是否存在
int drawRes = getDrawableResourceID(context, "cell_background"));
if(drawRes>0){
getResources().getDrawable(drawRes);
}
//To detect whether the reource exits in drawable or not
public static int getDrawableResourceID(Context context,
String identifierName) {
return context.getResources().getIdentifier(identifierName,
"drawable", context.getPackageName());
}
答案 2 :(得分:1)
不确定关于放入Drawable文件夹的问题我没有任何问题,仍然尝试使用这种方式我一般使用
Drawable drawable = getResources().getDrawable(R.drawable.cell_background);