安卓中利用TranslateAnimation实现图片循环移动时候的出现的一个问题,在这里记一下
来源:互联网 发布:jsonobject转java对象 编辑:程序博客网 时间:2024/06/13 07:22
要利用安卓的Animation实现一个图片的循环移动效果,在这里要使用到setAnimationListener. 但是在其中的onAnimationEnd()方法中设置图片的visibility属性的时候,
用setVisibility()进行设置,程序逻辑上没有问题,但是运行的时候会乱掉,也就是图片的出现和消失的顺序会乱掉。一直找不到原因,最后换了一种方法实现了这个功能
,可以参考我的另外一篇博客,地址:http://blog.csdn.net/lsdnh521/article/details/47664141
个人感觉这应该是android的一个Bug
Java代码如下:
public class MainActivity extends Activity { private ImageView pictureDong,pictureJing_1,pictureJing_2,pictureJing_3,pictureJing_4; private static Boolean occurFlag = true; private static float offsetValue ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); pictureDong = (ImageView) findViewById(R.id.pic_0); pictureJing_1 = (ImageView) findViewById(R.id.pic_1); pictureJing_2 = (ImageView) findViewById(R.id.pic_2); pictureJing_3 = (ImageView) findViewById(R.id.pic_3); pictureJing_4 = (ImageView) findViewById(R.id.pic_4); offsetValue = getResources().getDimension(R.dimen.offset_value); pictureJing_1.setVisibility(View.VISIBLE); final TranslateAnimation animation0 = new TranslateAnimation(0,offsetValue,0,0); animation0.setDuration(800); animation0.setFillAfter(true); final TranslateAnimation animation1 = new TranslateAnimation(offsetValue, offsetValue, 0, offsetValue); animation1.setDuration(800); animation1.setFillAfter(true); final TranslateAnimation animation2 = new TranslateAnimation(offsetValue,0,offsetValue,offsetValue); animation2.setDuration(800); animation2.setFillAfter(true); final TranslateAnimation animation3 = new TranslateAnimation(0,0,offsetValue,0); animation3.setDuration(800); animation3.setFillAfter(true); animation0.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (occurFlag == true){ pictureJing_2.setVisibility(View.VISIBLE); }else { pictureJing_2.setVisibility(View.GONE); } pictureDong.startAnimation(animation1); } @Override public void onAnimationRepeat(Animation animation) { } }); animation1.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (occurFlag == true){ pictureJing_3.setVisibility(View.VISIBLE); }else { pictureJing_3.setVisibility(View.GONE); } pictureDong.startAnimation(animation2); } @Override public void onAnimationRepeat(Animation animation) { } }); animation2.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (occurFlag == true){ pictureJing_4.setVisibility(View.VISIBLE); }else { pictureJing_4.setVisibility(View.GONE); } pictureDong.startAnimation(animation3); } @Override public void onAnimationRepeat(Animation animation) { } }); animation3.setAnimationListener(new Animation.AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { if (occurFlag == true){ occurFlag = false; }else { occurFlag = true; } if (occurFlag == false){ pictureJing_1.setVisibility(View.GONE); }else { pictureJing_1.setVisibility(View.GONE); } pictureDong.startAnimation(animation0); } @Override public void onAnimationRepeat(Animation animation) { } }); pictureDong.startAnimation(animation0); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); }}
这个效果用setVisibility()来实现就是有问题,换了很多种方法,直到把setVisibility()都换掉问题才解决!很诡异的错误!
1 0
- 安卓中利用TranslateAnimation实现图片循环移动时候的出现的一个问题,在这里记一下
- 在Sql Server中查询一下Excel文件的时候出现问题:
- 如何让一副图片在页面加载完成时候出现移动翻转和淡入的效果?
- 利用JQuery实现鼠标移动到图片上方的时候显示二维码,离开的时候不显示二维码
- Android图片实现动画(解决TranslateAnimation的残影问题)
- 循环移动的图片
- 循环移动的图片
- 解决Android中TranslateAnimation后出现残影的问题
- 一个将数字循环移动的问题
- 在图片上传时候遇到的问题
- 在这里新建了一个博客 希望能好好利用这里的资源学习
- 一个在myeclipse8.5中安装jbpm4.4的gpd时候出现的问题
- 在测试aes加密的时候,出现一个关于密钥的长度问题
- 关于TranslateAnimation()的参数问题
- ListView异步加载图片的时候出现的问题
- android中利用animation实现Image的循环移动
- 利用按钮选择器实现TabHost点击的时候切换图片
- 切换页面的时候出现一个页面闪一下,回到原来的界面
- 基于protobuf的RPC实现
- 宏定义
- linux基础教程---- vi编辑器
- Filter(过滤器)学习
- hdu 2094 产生冠军
- 安卓中利用TranslateAnimation实现图片循环移动时候的出现的一个问题,在这里记一下
- Linux内核线程
- 利用filter 过滤掉html标签
- hdu5382 GCD?LCM! 推公式+埃式筛法
- Java 获取windows磁盘卷标和名称
- 【Android】四大组件(2)BroadcastReceiver详解
- [.Net码农]NPOI读写Excel
- UVa 12283 Halloween Costumes 区间dp
- AS-->Android Studio直接打开/导入/编译Eclipse项目