(对不起,我的英语不太好...希望你能理解我)动态壁纸与图像
我的朋友是一个非常好的抽屉。我想帮助他通过使他成为一个动画与他的图纸动态壁纸知道作为一个很好的抽屉。
我想让他画几帧,并使用这些帧来制作一个接一个地显示它们的动态壁纸。
我很努力地显示一张图片,然后等待一下,然后显示下一张图片。我敢肯定,我不能成功做到这一点,因为我不使用正确的方法...
这是我到现在为止完成:
public class Cercle extends WallpaperService
{
public void onCreate()
{
super.onCreate();
}
public void onDestroy()
{
super.onDestroy();
}
public Engine onCreateEngine()
{
return new CercleEngine();
}
class CercleEngine extends Engine
{
public Bitmap image1, image2, image3;
CercleEngine()
{
image1 = BitmapFactory.decodeResource(getResources(), R.drawable.img1);
image2 = BitmapFactory.decodeResource(getResources(), R.drawable.img2);
image3 = BitmapFactory.decodeResource(getResources(), R.drawable.img3);
}
public void onCreate(SurfaceHolder surfaceHolder)
{
super.onCreate(surfaceHolder);
}
public void onOffsetsChanged(float xOffset, float yOffset, float xStep, float yStep, int xPixels, int yPixels)
{
drawFrame();
}
void drawFrame()
{
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);
}
}
}
}
此代码只是显示图片太快,因为我不知道如何等待图片之间的间隔...
任何人都可以给我一些提示或给我看一些另一种解决方案的例子吗?
非常感谢!
UPDATE:
我得到了我的问题,通过增加一个Runnable解决:
private final Runnable drawRunner = new Runnable()
{
@Override
public void run() {
drawFrame();
}
};
,然后通过添加:
handler.removeCallbacks(drawRunner);
if (visible)
{
handler.postDelayed(drawRunner, 1000); // delay 1 sec
}
在并条机的结束()。
希望这会帮助别人。
谢谢艾哈迈德!我通过查看链接中的源代码来解决问题。对不起,我想给你投票,但它告诉我,我需要15声望才能做到这一点... – Pozinux
欢迎随时 – Alex