J2ME图像项幻灯片展示

4

我尝试在j2me中使用图片幻灯片。以下是我的图片幻灯片代码。但是,如果执行该代码,图片不会幻灯片播放并且不会显示。

如果我点击播放按钮,那么图片将自动从0.jpg幻灯片播放直到7.jpg。

这是用于幻灯片的变量。

 String[] Foto={"/0.jpg", "/1.jpg","/2.jpg", "/3.jpg","/4.jpg", "/5.jpg","/6.jpg", "/7.jpg"};
 Image[] img = new Image[8];

这是一个用于展示图片的循环。
protected void paint(Graphics g) {
    try {

        g.setColor(255, 0, 0 );
        g.fillRect(0, 0, getWidth(), getHeight());
        g.setColor(255,0, 0);
        g.drawString(text,getWidth()/2, getHeight()/2,
        Graphics.TOP | Graphics.HCENTER);
        g.setColor(0, 255, 0);
        g.setColor(123,0,255);
        g.drawRect(74,74, 100,100 );
        g.drawRect(72,72, 104,104 );

                   for ( int i=0;i<8;i++)
                if (i==1)
                if (i==2)
           img[i]=Image.createImage(Foto[i]);
           g.drawImage(img [1],124,124, Graphics.VCENTER | Graphics.HCENTER );
           g.drawImage(img [2],124,124, Graphics.VCENTER | Graphics.HCENTER );
           g.drawImage(img [1],124,124, Graphics.VCENTER | Graphics.HCENTER );

    } catch (IOException ex) {
        ex.printStackTrace();
    }}

尝试将所有这些内容放在paint函数外面。for(int i=0;i<8;i++) { img[i] = Image.createImage(Foto[i]); }并删除paint函数内执行相同操作的行。 - mr_lou
1个回答

0

你在Paint()函数中有一个循环,它会逐个在画布上绘制图像。尝试使用全局变量currentIndex = 0

protected void paint(Graphics g) {
try {

    g.setColor(255, 0, 0 );
    g.fillRect(0, 0, getWidth(), getHeight());
    g.setColor(255,0, 0);
    g.drawString(text,getWidth()/2, getHeight()/2,
    Graphics.TOP | Graphics.HCENTER);
    g.setColor(0, 255, 0);
    g.setColor(123,0,255);
    g.drawRect(74,74, 100,100 );
    g.drawRect(72,72, 104,104 );


   img = Image.createImage(Foto[currentIndex]);
   g.drawImage(img,124,124, Graphics.VCENTER | Graphics.HCENTER );

} catch (IOException ex) {
    ex.printStackTrace();
}}

点击您的按钮,您可以尝试

currentIndex++;
repaint();

如果你想要一个动画效果,你可以在重新绘制图像时改变 x 或 y。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接