Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android-onClickListener导致我的动画重置_Android_Animation_Views - Fatal编程技术网

android-onClickListener导致我的动画重置

android-onClickListener导致我的动画重置,android,animation,views,Android,Animation,Views,我有一个带有一些元素的活动,比如ImageView、Button、ToggleButton等等。以及包含ImageView的水平滚动视图的子视图(LinearLayout) 子视图是我想用动画隐藏/显示的元素。 我的动画制作成功。但是,当我触摸一个切换按钮或应用一个过滤器时,子视图将重置并返回到其原始位置 我推断,当视图的某个元素发生视觉变化时,子视图将在其原点处被替换 但我不明白为什么 活动类 公共类CameraActivity扩展活动实现PictureCallback { 专用切换按钮fla

我有一个带有一些元素的活动,比如ImageView、Button、ToggleButton等等。以及包含ImageView的水平滚动视图的子视图(LinearLayout)

子视图是我想用动画隐藏/显示的元素。 我的动画制作成功。但是,当我触摸一个切换按钮或应用一个过滤器时,子视图将重置并返回到其原始位置

我推断,当视图的某个元素发生视觉变化时,子视图将在其原点处被替换

但我不明白为什么

活动类

公共类CameraActivity扩展活动实现PictureCallback
{
专用切换按钮flashButton;
专用按钮过滤器CrollButton;
专用线路布局过滤器CrollView;
专用线路布局过滤器CrollView布局;
私有布尔过滤器设置为false;
私有图像视图过滤器图像视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_摄像头);
//在操作栏中显示“向上”按钮。
getActionBar().setDisplayHomeAsUpEnabled(true);
flashButton=(ToggleButton)findViewById(R.id.button\u flash);
filterScrollButton=(按钮)findViewById(R.id.Button\u open\u过滤器);
filterScrollView=(LinearLayout)findViewById(R.id.camera\u scroll\u filters);
filterScrollViewLayout=(LinearLayout)findViewById(R.id.camera\u scroll\u filters\u layout);
}
...
私有void initScrollFilters()
{
String[]filters=getResources().getStringArray(R.array.array\u filters);
for(最终字符串:过滤器)
{
ImageView v=新的ImageView(CameraActivity.this);
int imageFilterId=-1;
if(string!=null&&!string.isEmpty())
{
final int-imageId=getResources().getIdentifier(@drawable/filter_“+字符串,null,getPackageName());
imageFilterId=getResources().getIdentifier(@drawable/filter_“+字符串,null,getPackageName());
v、 setImageDrawable(getResources().getDrawable(imageId));
}
final int finalImageFilterId=imageFilterId;
v、 setOnClickListener(新的OnClickListener()
{
@凌驾
公共void onClick(视图){
Log.d(字符串+“触摸过滤器图像”);
CameraActivity.this.cameraManager.setImageFilter(finalImageFilterId);//将新筛选器应用于filterImageView
}
});
filterScrollViewLayout.addView(v,100100);
}
}
私有void initListeners()
{
//闪光
setOnCheckedChangeListener(新的OnCheckedChangeListener()
{
@凌驾
检查更改后的公共无效(复合按钮视图,布尔值已检查)
{
//摄影机参数已更改
}
});
//过滤器滚动视图
filterScrollButton.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v)
{
Log.d(“单击过滤器滚动按钮!!”;
最终浮动方向=(CameraActivity.this.FiltersSopend)?-1:1;
最终浮动yDelta=-100;
最终动画=新的平移动画(0,0,0,yDelta*方向);
setAnimationListener(新的AnimationListener(){
@凌驾
onAnimationStart(动画){}上的公共无效
@凌驾
公共无效onAnimationRepeat(动画){}
@凌驾
onAnimationEnd上的公共无效(动画)
{
TranslateAnimation anim=新的TranslateAnimation(0.0f,0.0f,0.0f,0.0f);
动画设定持续时间(1);
CameraActivity.this.filterScrollView.startAnimation(动画);
inttop=(int)(CameraActivity.this.filterScrollView.getTop()+(yDelta*方向));
CameraActivity.this.filterScrollView.setTop(顶部);
}
});
动画。设置持续时间(500);
CameraActivity.this.filterScrollView.startAnimation(动画);
CameraActivity.this.FiltersSopend=!CameraActivity.this.FiltersSopend;
}
});
}
...
}
xml视图



尝试animation.setFillAfter(true);它不会改变任何事情:/I我有同样的问题。。可能是虫子吧?