【问题标题】:Android Live Wallpaper - not showing background image?Android 动态壁纸 - 不显示背景图片?
【发布时间】:2015-01-02 16:08:07
【问题描述】:

我开始实现 android 动态壁纸,遵循互联网上的示例和教程,我不能将 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。 启动动态壁纸后,我只得到“加载壁纸”,没有显示壁纸图像。

有谁知道可能是什么问题?

谢谢。 DJ。

【问题讨论】:

    标签: android wallpaper


    【解决方案1】:

    在你的画中使用它

    '位图图像 = BitmapFactory.decodeResource(getResources(),R.drawable.image);'

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

    你可以在paint参数中传递null。我正在使用它及其工作

    【讨论】:

      【解决方案2】:

      我遇到了类似的问题,c.drawColor(0xff000000); 在绘制位图之前是我的解决方案。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-06-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多