Android Live Wallpaper - не отображается фоновое изображение? - PullRequest
1 голос
/ 27 октября 2010

Я начал внедрять живые обои для Android, следуя примерам и учебникам, найденным в Интернете, и не могу включить фоновый рисунок в качестве обоев. Также проверено с подобными проблемами здесь, и все еще не может заставить это работать.

Это код:

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);           
        }
    }
}

Растровое изображение хранится в папке для рисования, и версия Android SDK 2.2. После запуска живых обоев, я получаю только «Загрузка обоев», не показывая изображение обоев.

Кто-нибудь знает в чем может быть проблема?

Спасибо. Dj.

Ответы [ 2 ]

1 голос
/ 02 января 2015

используйте это в вашем рисовании

'Растровое изображение = BitmapFactory.decodeResource (getResources (), R.drawable.image);'

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

вы можете передать значение null в параметре рисования,м с помощью этого и его работы

0 голосов
/ 23 июня 2011

Я боролся с подобной проблемой, c.drawColor(0xff000000);, прежде чем рисовать растровое изображение было для меня решением.

...