0

onItemClickListener ListView의 메서드에서 ImageView를 애니메이션으로 만들 수 없습니다. ListView는 조각 안에 있습니다. 누군가 내가 무엇을해야한다고 제안 할 수 있습니까?애니메이션에서 이미지 뷰 애니메이션

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); 
    } 
} 
+0

좋아하는 변경하십시오? – Talha

+0

아니요, 조각과 같은 기본 레이아웃에 있습니다 ... – slyder07

+0

final ImageView i = (ImageView) findViewById (R.id.imgv); oncreate에 넣어 – Talha

답변

1

아니요, 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); 
     } 
    }); 
+0

그건 나를 위해, 그 beacause 내가 위에서 쓴 코드의 섹션 조각을 확장하는 클래스 내부입니다 작동하지 않습니다 ... – slyder07

+0

좋아, 변경되었습니다. 만약 당신이 레이아웃을 비정상적으로 확장했다면 – Talha

+0

여전히 작동하지 않습니다 ... Eclipse streess와 loadAnimation 메소드가 모두 다음과 같은 오류를 보여줍니다 : "AnimationUtils 유형의 메소드 loadAnimation (Context, int)은 인수에 적용 할 수 없습니다 (새 AdapterView.OnItemClickListener " – slyder07

2
I think you have to try this following code it works for me.... 

애니메이션 animation1 = AnimationUtils.loadAnimation (getapplicationContext(), R.anim.anim1)를 사용할 수 있습니다; 대신

애니메이션 animation1 = AnimationUtils.loadAnimation (이, R.anim.anim1)의

;

일할 수도 있습니다.

0

어디 N 목록보기이다, 이미지 뷰입니다

Animation animation1 = AnimationUtils.loadAnimation(MainFragment.this, R.anim.anim1); 
+0

이 코드 블록이 질문에 답할 수 있지만 가능한 한 최선을 다할 것입니다. 왜 그렇게하는지에 대한 약간의 설명을 제공하십시오. – David

관련 문제