![](/img/trans.png)
[英]Animate an imageview out of the activity and bring a fragment into the activity from the bottom: Android
[英]Animate ImageView From Activity
无法通过onItemClickListener ListView的方法设置ImageView的动画。 ListView在一个Fragment中。 有人可以建议我该怎么办?
public class MainFragment extends Fragment {
View view;
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle sis){
View view = inflater.inflate(R.layout.fragment_layout, container, false);
ListView lv = (ListView)view.findViewById(R.id.listf);
this.view= view;
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
ImageView i = (ImageView)view.findViewById(R.id.imgv);
AnimationSet as = new AnimationSet(true);
Animation animation1 = AnimationUtils.loadAnimation(this, R.anim.anim1);
Animation animation2 = AnimationUtils.loadAnimation(this, R.anim.anim2);
as.addAnimation(animation1);
as.addAnimation(animation2);
i.setImageResource(R.drawable.logocpic1);
i.startAnimation(as);
}
}
I think you have to try this following code it works for me....
动画animation1 = AnimationUtils.loadAnimation(getapplicationContext(),R.anim.anim1);
代替
动画animation1 = AnimationUtils.loadAnimation(this,R.anim.anim1);
可能对你有用。
好的,您出错了,因为您正在非UI线程中执行UI操作。 您可以使用以下代码,
public class MainFragment extends Fragment {
View view;
ImageView i;
.
.
.
.
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view,int position, long id) {
.
.
.
getActivity().runOnUiThread(new Runnable() {
public void run() {
i = (ImageView)getActivity().findViewById(R.id.imgv);
}
});
请更改为喜欢
Animation animation1 = AnimationUtils.loadAnimation(MainFragment.this, R.anim.anim1);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.