0

我正在开发一个动态壁纸,允许用户从他们的图库中选择静态图像并将其作为主屏幕上的背景。我一直在关注这里接受的答案:为动态壁纸选择背景,一切正常,直到我不得不实现以下代码(答案中的最后一部分):

void getBackground() { 
if (this.cvwidth == 0 || this.cvheight == 0 || this.visibleWidth == 0) {
this.cvwidth = 480;
this.cvheight = 854;
this.visibleWidth = 480;}
if(new File(imageBg).exists()) {
int SampleSize = 1;
do {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
bg = BitmapFactory.decodeFile(imageBg, options);
SampleSize = (int) (Math.ceil(options.outWidth/(this.visibleWidth * 2))*2);
options.inJustDecodeBounds = false;
try {options.inSampleSize = SampleSize;
bg = BitmapFactory.decodeFile(imageBg, options);}
catch (OutOfMemoryError e) {
SampleSize = SampleSize * 2;
}
} while (bg == null);

bg = Bitmap.createScaledBitmap(bg, this.cvwidth/2, this.cvheight, true);}
else {bg = BitmapFactory.decodeResource(getResources(), R.drawable.bg);
bg = Bitmap.createScaledBitmap(bg, this.cvwidth/2, this.cvheight, true);}
LoadText = "";
} 

添加适当的变量后,其他所有内容都按原样工作。这里让我感到困惑的是这条线else {bg = BitmapFactory.decodeResource(getResources(), R.drawable.bg);,它给了我错误bg cannot be resolved or is not a field,指的是R.drawable.bg. 我在这里想念什么?

任何人?

4

1 回答 1

0

这是我多年前最初的(冗长的答案),现在我对整个代码感到迷茫,因为我现在根本不为 android 开发。

但是,如果我没记错的话,你需要一张图片保存在你的 drawables 文件夹中。我叫我的'bg'。它在应用程序启动时用作默认图像,并且如果代码无法解析用户选择的图像(例如稍后删除),它也用作回滚图像。

我希望我是正确的,但大约三年前我写了这个答案。

祝你好运。

于 2013-11-14T15:29:00.760 回答