Android UI 컨트롤 의 ImageSwitcher 이미지 전환 효과 구현

본 논문 의 사례 는 geSwitcher 가 이미지 전환 효 과 를 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
이 이름 에서 알 수 있 듯 이 ImageSwitcher 는 그림 전환 컨트롤 로 일련의 그림 에서 특정한 그림 을 한 장 씩 표시 할 수 있 습 니 다.이 컨트롤 을 이용 하면 그림 브 라 우 저의 이전,다음 기능 을 실현 할 수 있 습 니 다.사용 방법 간단 하지만 주의해 야 할 것 은 ImageSwitcher 가 사용 할 때 그림 을 표시 하 는 용기 와 부모 창 을 구분 하 는 ViewFactory 가 필요 합 니 다.
구체 적 인 용법 은 직접 실례 를 보고,관례 대로 먼저 효과 도 를 올 린 다

다음 효과 보기:


레이아웃 파일 은 더 이상 얘 기 하지 않 겠 습 니 다.MainActivity 코드 부분 을 보 세 요.

package com.kiritor.ui_imageswitcher; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageSwitcher; 
import android.widget.ImageView; 
import android.widget.ViewSwitcher.ViewFactory; 
/*  ,         ViewFactory OnClickListener  */ 
public class MainActivity extends Activity implements ViewFactory, OnClickListener { 
   /*       */ 
   private static final Integer[] images = { 
      R.drawable.first, 
      R.drawable.second, 
      R.drawable.third, 
       
   }; 
    
   private ImageSwitcher is; 
   private Button btnPrev,btnNext; 
   private static int index = 0; 
  /** Called when the activity is first created. */ 
  @Override 
  public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    /*  ID    */ 
    is = (ImageSwitcher) findViewById(R.id.image_switchter); 
    btnPrev = (Button) findViewById(R.id.pre); 
    btnNext = (Button) findViewById(R.id.next); 
    
    is.setFactory(this);//  ImageSwitcher   ViewFactory 
    is.setImageResource(images[index]);//          
    /*       OnClickListen   ,           this*/ 
    btnPrev.setOnClickListener(this); 
    btnNext.setOnClickListener(this); 
  } 
  /*       ,             */ 
   public void onClick(View v) { 
      switch(v.getId()){ 
      case R.id.next: 
         index++; 
         if(index>=images.length){ 
           index = 0; 
         } 
         is.setImageResource(images[index]); 
         break; 
      case R.id.pre: 
         index--; 
         if(index<0){ 
           index = images.length - 1; 
         } 
         is.setImageResource(images[index]); 
         break; 
      default: 
         break; 
      } 
   } 
   /** 
    *        View    
    *         ImageSwitcher      
    *     ImageView      
    *           ImageView    
    */ 
   public View makeView() { 
      return new ImageView(this); 
   } 
}        

상기 코드 에서 주의해 야 할 것 은:
1.본 류 는 두 개의 인 터 페 이 스 를 실현 하기 때문에 클래스 에서 이 두 개의 인터페이스 중의 방법 을 실현 해 야 한다.이렇게 쓰 는 장점 은 다음 과 같다.
다시 사용 하기 편리 합 니 다.다음 코드 에 서 는 이 두 인 터 페 이 스 를 사용 해 야 하 는 곳 에서 this 키 워드 를 직접 사용 할 수 있 습 니 다.
2.images 는 전체 배열 의 정적 상수 로 서 그 안에 저 장 된 모든 그림 의 ID 입 니 다.이것 은 res 디 렉 터 리 의 drawable 디 렉 터 리 에 그림 을 복사 해 야 합 니 다.
3.setFactory()방법 은 시스템 에 이미지 스 위 처 가 어떤 모습 으로 내용 을 표시 해 야 하 는 지 알려 주 고,setImageSource()는 시스템 에 표시 할 그림 을 어디서 얻 는 지 알려 준다.
4.MakeView()방법 은 View Factory 인터페이스 에서 정의 하 는 방법 입 니 다.이 방법 은 View 를 되 돌려 주 고 ImageSwitcher 는 이 View 의 레이아웃 에 따라 내용 을 표시 합 니 다.
간단 한 이미지 브 라 우 저가 완성 되 었 습 니 다!
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기