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 fieldR.drawable.bg

誰?

4

1 に答える 1

0

それは何年も前の私の最初の(長々とした答え)でしたが、今はAndroid用に開発していないので、コード全体について霧がかかっています。

ただし、私の記憶がよければ、drawables フォルダーに画像を保存する必要があります。私は私のものを「bg」と呼びました。アプリの起動時にデフォルトの画像として使用され、ユーザーが選択した画像をコードが解決できなかった場合 (たとえば、後で削除された場合) にロールバック画像としても使用されました。

私が正しいことを願っていますが、その答えを書いたのは約3年前です。

幸運を。

于 2013-11-14T15:29:00.760 に答える