如何解决在这种情况下如何使用触摸监听器
在这方面我需要帮助
无论如何,我正在尝试通过using MyUMap = std::unordered_map<std::string,std::string>;
MyUMap default_map_object_with_static_storage_duration{};
bool existence_checker(const std::string& s = "",MyUMap& um = default_map_object_with_static_storage_duration);
来实现按钮按下。我想要的是,ImageView
显示默认图像,如果按下(ImageView
)[具有OnTouch
块],则可以运行帧动画。当您释放触摸[有一个MotionEvent.ACTION_DOWN
块时,它将停止动画并返回默认图像。
注意:帧动画是连续重复的,并且不应包括默认图像作为循环播放的图像之一。 (触摸时不应显示按钮上的图像)
现在的问题是,我可以使用动画了,但是根据android文档,默认情况下会显示``标签中的第一项。但是,如果我将默认图像(按钮未触摸状态)添加为第一项,则它将在循环中显示。另外,当我释放触摸时,我使用MotionEvent.ACTION_UP
的{{1}}方法,该方法将动画停止在当前帧(图像)上,我似乎找不到任何方法来停止并转到图片的默认状态。
这是我的代码:
button_anim.xml
stop()
MainActivity.java
AnimationDrawable
默认图片:-button1_inactive.png
解决方法
天真的解决方法是停止后重新分配默认图像,所以:
...
else if (action == MotionEvent.ACTION_UP) {
buttonAnim.stop();
button.setBackgroundResource( /** Assign again here the default image */ );
}
...
将“在此处再次分配默认图片” 注释替换为默认图片标识符或可绘制图片。
从逻辑上讲,在按下时再次将R.drawable.button_anim分配给按钮,然后再次开始动画。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。