簡體   English   中英

如何設置android動態壁紙的背景圖像?

[英]How to set background image for android live wallpaper..?

嗨,我想從資源文件夾中為我的動態壁紙設置背景圖像,在該圖像上我想做一些其他動畫處理。 該背景不應改變。 這是我嘗試的代碼,但無法正常工作...

@Override
        public void onCreate(SurfaceHolder holder) {
            super.onCreate(holder);
            Log.i("onCreate","onCreate");
            Canvas c = null;
            c = holder.lockCanvas();
            try {
                if(c != null)
                doDraw(c);
            } catch(Exception e) {
                Log.e(TAG, "Exception Accourd ");
            }
}

public void doDraw(Canvas c) {
            Resources res = getResources();
            Bitmap bm = BitmapFactory.decodeResource(res, R.drawable.bg_port);
            c.drawBitmap(bm, 0, 0, null);
        }

圖片未加載,其捕獲錯誤。

下面給出了堆棧跟蹤

04-05 00:10:07.211: W/System.err(979): java.lang.NullPointerException
04-05 00:10:07.221: W/System.err(979):  at com.exp.wallpaper.MyWallPaperService$MyWallPaperEngine.doDraw(MyWallPaperService.java:94)
04-05 00:10:07.221: W/System.err(979):  at com.exp.wallpaper.MyWallPaperService$MyWallPaperEngine.onCreate(MyWallPaperService.java:125)
04-05 00:10:07.231: W/System.err(979):  at android.service.wallpaper.WallpaperService$Engine.attach(WallpaperService.java:648)
04-05 00:10:07.231: W/System.err(979):  at android.service.wallpaper.WallpaperService$IWallpaperEngineWrapper.executeMessage(WallpaperService.java:875)
04-05 00:10:07.241: W/System.err(979):  at com.android.internal.os.HandlerCaller$MyHandler.handleMessage(HandlerCaller.java:61)
04-05 00:10:07.241: W/System.err(979):  at android.os.Handler.dispatchMessage(Handler.java:99)
04-05 00:10:07.241: W/System.err(979):  at android.os.Looper.loop(Looper.java:123)
04-05 00:10:07.241: W/System.err(979):  at android.app.ActivityThread.main(ActivityThread.java:3683)
04-05 00:10:07.251: W/System.err(979):  at java.lang.reflect.Method.invokeNative(Native Method)
04-05 00:10:07.251: W/System.err(979):  at java.lang.reflect.Method.invoke(Method.java:507)
04-05 00:10:07.251: W/System.err(979):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
04-05 00:10:07.251: W/System.err(979):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
04-05 00:10:07.251: W/System.err(979):  at dalvik.system.NativeStart.main(Native Method)

試試這個代碼.......................

public void drawFrame() {  final SurfaceHolder holder = getSurfaceHolder();
         try {
            c = holder.lockCanvas();
            c.save();
            if (c != null) {
                  doDraw(c);
            }
        } finally {
            if (c != null) holder.unlockCanvasAndPost(c);
        }
       mHandler.removeCallbacks(onadraw);
        if (mVisible) {
            mHandler.postDelayed(onadraw, 1000/25);
        }}
public void doDraw(Canvas c) {Resources res = getResources();
        Bitmap bm = BitmapFactory.decodeResource(res, R.drawable.bg_port);
        c.drawBitmap(bm, 0, 0, null);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM