从画廊选择动态壁纸的背景

时间:2013-11-12 16:15:07

标签: android gallery live-wallpaper

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

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。我在这里缺少什么?

任何?

1 个答案:

答案 0 :(得分:0)

这是我多年前的原创(冗长的答案),现在我对整个代码都很模糊,因为我现在根本没有为Android开发。

但是,如果我的记忆力很好,则需要在drawables文件夹中保存图像。我打电话给我'bg'。它在应用程序启动时用作默认图像,如果代码无法解析用户选择的图像(例如稍后删除),它也用作回滚图像。

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

祝你好运。