Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有图像序列的简单Android Live墙纸-使用代码更新_Java_Android_Android Animation_Live Wallpaper - Fatal编程技术网

Java 带有图像序列的简单Android Live墙纸-使用代码更新

Java 带有图像序列的简单Android Live墙纸-使用代码更新,java,android,android-animation,live-wallpaper,Java,Android,Android Animation,Live Wallpaper,我想开发一个简单的现场与图像序列壁纸。唯一需要的动画是每个图像淡入淡出 我在网上找到的关于LWP的所有教程都演示了如何使用绘图画布进行奇特的动画和绘图。这对我的应用程序不是必需的,我只想遍历一组图像 作为一名新手程序员,我需要一些帮助来学习如何循环浏览一系列图像以及如何将它们显示为壁纸 有人能分享一些代码或者给我一个好的教程吗 更新 LWP会加载到我的设备上,但壁纸不会更改。铁人,它卡在图像3上了 这是我到目前为止的代码。我想我在draw()中做错了什么 没有简单的方法可以绕过一系列图像的循环。

我想开发一个简单的现场与图像序列壁纸。唯一需要的动画是每个图像淡入淡出

我在网上找到的关于LWP的所有教程都演示了如何使用绘图画布进行奇特的动画和绘图。这对我的应用程序不是必需的,我只想遍历一组图像

作为一名新手程序员,我需要一些帮助来学习如何循环浏览一系列图像以及如何将它们显示为壁纸

有人能分享一些代码或者给我一个好的教程吗

更新

LWP会加载到我的设备上,但壁纸不会更改。铁人,它卡在图像3上了

这是我到目前为止的代码。我想我在draw()中做错了什么


没有简单的方法可以绕过一系列图像的循环。这将不得不手动完成

您可以采用的一种方法是将图像保持在/res/可绘制状态 然后使用int[]数组存储图像的resid,然后循环遍历它

有关实时壁纸的详细说明,请参见:


祝你好运

没有简单的方法可以绕过一系列图像的循环。这将不得不手动完成

您可以采用的一种方法是将图像保持在/res/可绘制状态 然后使用int[]数组存储图像的resid,然后循环遍历它

有关实时壁纸的详细说明,请参见:


祝你好运

我已经看过vogella教程了。我在手机上安装了实时壁纸,但它仍保留在一张图像上。我将分享我的代码。@tiptopjat您是否能够开发一个带有淡入淡出效果的图像序列的实时壁纸。我也被同样的问题所困扰。请您帮助我。我已经看过vogella教程。我在手机上安装了实时壁纸,但它仍保留在一张图像上。我将分享我的代码。@tiptopjat您是否能够开发一个带有淡入淡出效果的图像序列的实时墙纸。我也遇到同样的问题。您能帮我吗。
public class Wallpaper extends WallpaperService {
public void onCreate() {
    super.onCreate();
}

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

public Engine onCreateEngine() {
    return new CercleEngine();
}

class CercleEngine extends Engine {

    private final Handler handler = new Handler();
    private final Runnable drawRunner = new Runnable() {
        @Override
        public void run() {
            draw();
        }
    };
    private boolean visible = true;
    public Bitmap image1, image2, image3;

    CercleEngine() {
        image1 = BitmapFactory.decodeResource(getResources(),
                R.drawable.batman);
        image2 = BitmapFactory.decodeResource(getResources(),
                R.drawable.captainamerica);
        image3 = BitmapFactory.decodeResource(getResources(),
                R.drawable.ironman);
    }


    public void onCreate(SurfaceHolder surfaceHolder) {
        super.onCreate(surfaceHolder);
    }

    @Override
    public void onVisibilityChanged(boolean visible) {
        this.visible = visible;
        if (visible) {
            handler.post(drawRunner);
        } else {
            handler.removeCallbacks(drawRunner);
        }
    }

    @Override
    public void onSurfaceDestroyed(SurfaceHolder holder) {
        super.onSurfaceDestroyed(holder);
        this.visible = false;
        handler.removeCallbacks(drawRunner);
    }

    public void onOffsetsChanged(float xOffset, float yOffset, float xStep,
            float yStep, int xPixels, int yPixels) {
        draw();
    }

    void draw() {
        final SurfaceHolder holder = getSurfaceHolder();

        Canvas c = null;
        try {
            c = holder.lockCanvas();
            if (c != null) {
                c.drawBitmap(image1, 0, 0, null);
                c.drawBitmap(image2, 0, 0, null);
                c.drawBitmap(image3, 0, 0, null);
            }
        } finally {
            if (c != null)
                holder.unlockCanvasAndPost(c);
        }

        handler.removeCallbacks(drawRunner);
        if (visible) 
        {
           handler.postDelayed(drawRunner, 1000); // delay 1 sec
        }

    }
}