【问题标题】:GIF Listener in androidAndroid中的GIF监听器
【发布时间】:2016-05-29 21:03:38
【问题描述】:

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

想法是:

  • gif是由3张图片组成的,当你点击第一张图片时,gif会换成另一张,以此类推。

感谢您的关注。

编辑: 其实我正在尝试这种方式

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

在 mainActivity 的 onCreate() 上。日志生成良好,但我无法查看

【问题讨论】:

  • View.setOnClickListener 没用?
  • 我忘了说 findViewById(R.id.ivAnimation).setOnClickListener(new View.OnClickListener(){ @Override public void onClick(View v){ Log.i(TAG, "onClickGif PrincipalActivity "); } });工作,在日志中我可以阅读“onClickgif ...”,但除了将其附加到日志中之外,我什么也做不了
  • 您需要将 findViewById(R.id.ivAnimation) 的实例保存到 ImageView(或 XML 中的任何内容),以便对视图对象执行任何操作

标签: android listener gif


【解决方案1】:

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

警告:未经测试:)

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]);
    }
});

【讨论】:

  • 感谢您的帮助。使用此代码,我可以看到 gif 像往常一样更改图像加上一个较小的静态图像,单击时会更改为第三个图像。
  • 我不知道您使用什么 View 来显示 gif,但我认为它会不断地在背景中绘制它并忽略图像源。您可能需要编辑自定义 Gif 图像视图的源代码以允许单步执行“帧”
猜你喜欢
  • 2016-06-09
  • 2021-11-28
  • 2018-08-20
  • 2011-03-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多