سؤال

لقد بدأت تنفيذ خلفية Android Live ، باتباع الأمثلة والبرامج التعليمية الموجودة على الإنترنت ، ولا يمكنني تضمين خلفية PNG كخلفية. تم فحصه أيضًا بمشاكل مماثلة هنا ، ولا يزال لا يمكن جعله يعمل.

هذا هو الرمز:

public class LiveWallpaper extends WallpaperService {

    /* IDs of recurces needed for animations*/
    private SurfaceHolder holder;
    private static final String TAG = "MyActivity";

    @Override
    public void onCreate() {
        super.onCreate();
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
    }

    @Override
    public Engine onCreateEngine() {
        return new WallpaperEngine();
    }

    class WallpaperEngine extends Engine {
    public final Runnable mDrawWallpaper = new Runnable(){
         public void run(){
            drawWallpaper();
         }
    };

    @Override
    public void onCreate(SurfaceHolder surfaceHolder){
        super.onCreate(surfaceHolder);
        setTouchEventsEnabled(false);
        loadImagesIntoMemory(R.drawable.wallpaper);
        holder = getSurfaceHolder();

    }

    void drawWallpaperContent(Canvas c, int resourceId){
        Bitmap decodeResoure = BitmapFactory.decodeResource (getResources(), resourceId);
        c.drawBitmap(decodeResoure, 0, 0, null);
    }

    void drawWallpaper(){
        final SurfaceHolder holder = getSurfaceHolder();
        Canvas c = null;
            c = holder.lockCanvas();

        if(c!=null){
            c.save();
            drawWallpaperContent(c, R.drawable.wallpaper);
                    c.restore();
        }
        }

        private void loadImagesIntoMemory(int resourceId){
        Resources res = getResources();
        BitmapFactory.decodeResource(res, resourceId);
        }

        @Override
        public void onDestroy(){
        super.onDestroy();
        mHandler.removeCallbacks(mDrawWallpaper);           
        }
    }
}

يتم تخزين Bitmap في مجلد Drawable ، وإصدار Android SDK هو 2.2. بعد إطلاق خلفية حية ، أحصل فقط على خلفية التحميل "دون إظهار صورة خلفية.

هل يعرف أي شخص ما يمكن أن يكون المشكلة؟

شكرًا لك. دي جي.

هل كانت مفيدة؟

المحلول

استخدم هذا في السحب الخاص بك

'صورة bitmap = bitmapfactory.decoderesource (getResources () ، r.drawable.image) ؛ "

 canvas.drawBitmap(image, 0, 0, paint);

يمكنك تمرير فارغ في معلمة الطلاء. م باستخدام هذا وعمله

نصائح أخرى

لقد ناضلت مع مشكلة مماثلة ، c.drawColor(0xff000000); قبل رسم صورة نقطية كان الحل بالنسبة لي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top