2016-02-17 161 views
0

我使用这个How to animate .gif images in an android?解决方案(Shobhit Puri的第一个答案)在我的应用程序中实现一些Gif。现在我想添加一些监听器(点击列表器)。 我试过的每一个程序都没有奏效。在Android的GIF监听器

的理念是:

  • 的GIF由3图像制作,当你点击第一个图像的GIF将在另外一个变化,等等。

感谢您的关注。

编辑: actualy我试图在MainActivity这种方式

findViewById(R.id.ivAnimation).setOnClickListener(new View.OnClickListener(){ 
     @Override 
    public void onClick(View v){ 
      Log.i(TAG, "onClickGif PrincipalActivity"); 
     } 
    }); 

上的onCreate()。日志很好地生成,但我不能去这

+0

'View.setOnClickListener'没有工作? –

+0

我忘了说, findViewById(R.id.ivAnimation).setOnClickListener(新View.OnClickListener(){ @覆盖 公共无效的onClick(视图v){ Log.i(TAG, “onClickGif PrincipalActivity”) ; } }); 工作,在日志中,我可以读取“onClickgif ...” 但我无法做任何事,只能追加这在日志 –

+0

您需要保存'findViewById(R.id.ivAnimation)'的实例到一个ImageView(或者无论它在你的XML中),以便对视图对象 –

回答

0

我不确定的gifs,但如果你有单独的文件,你可以做这样的事情。

警告:未经测试:)

final int[] imgs = new int[] {R.drawable.img1, R.drawable.img2, R.drawable.img3}; 
int position = 0; 

final ImageView gifView = (ImageView) findViewById(R.id.ivAnimation); 
gifView.setImageResource(imgs[position]); 

gifView.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v){ 
     Log.i(TAG, "onClickGif PrincipalActivity"); 
     position = (position + 1) % imgs.length; // wrap around to "restart" gif 
     gifView.setImageResource(imgs[position]); 
    } 
}); 
+0

感谢帮助。通过这段代码,我可以看到gif一如既往地改变图像,再加上一个较小的静态图像,直到第三个图像发生变化。 –

+0

我不知道你用什么View来显示GIF,但我认为它会不断在后台绘制它并忽略图像源。您可能需要编辑自定义Gif图像视图的来源以允许逐步浏览“帧” –