Android中的GIF监听器
Posted
技术标签:
【中文标题】Android中的GIF监听器【英文标题】:GIF Listener in android 【发布时间】: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 中的任何内容),以便对视图对象执行任何操作
【参考方案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 图像视图的源代码以允许单步执行“帧”以上是关于Android中的GIF监听器的主要内容,如果未能解决你的问题,请参考以下文章
Android jetpack compose中的按钮长按监听器