为什么eclipse本身会导入android.R,因为当它使用位图并从我项目的res文件夹中的可绘制文件中获取图片时会出现错误。下面是我的代码。错误出现在以下行中:
Bitmap tempBitmap = BitmapFactory.decodeResource(myContext.getResources(), R.drawable.card_back);
它说card_back即使在res里面的drawable文件夹中是一个png文件也无法解析。此外,如果我从文件中删除导入android.R它完全正常,我是新的Android任何帮助是受欢迎的。
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import java.util.Random;
import android.R;
import android.R.color;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.hardware.Camera.Size;
import android.view.MotionEvent;
import android.view.View;
import android.graphics.Color;;
@Override
public void onSizeChanged (int w, int h, int oldw, int oldh){
super.onSizeChanged(w, h, oldw, oldh);
screenW = w;
screenH = h;
Bitmap tempBitmap = BitmapFactory.decodeResource(myContext.getResources(), R.drawable.card_back);
scaledCardW = (int) (screenW/8);
scaledCardH = (int) (scaledCardW*1.28);
cardBack = Bitmap.createScaledBitmap(tempBitmap, scaledCardW, scaledCardH, false);
initCards();
dealCard();
drawCard(discardPile);
// initCards();
}
答案 0 :(得分:1)
您通常应该导入项目自己的R
课程,即your.app.package.R
。您在项目的res /文件夹下定义的值将生成到该类中。如果您需要在Android R
中引用股票字符串或其他内容,请使用其完全限定名称,例如android.R.string.yes
。
答案 1 :(得分:0)
这是因为你导入了android资源(android.R),而不是你的。如果要使用保留在res
文件夹中的任何资源,则必须不导入任何资源,因为可以从项目的任何类访问自动生成R.class范围。