안 드 로 이 드 스 레 드 이미지 윤 방 실현

4332 단어 Android사진 윤파
실현 효과
이 글 은 간단 한 그림 순환 방송 을 실현 하고 자원 그림 3 장 을 초기 화 하 며 3 초 에 한 번 씩 그림 배경 을 바 꾸 고 번갈아 재생 합 니 다.

지식
Thread 스 레 드 start(),sleep();handler 메커니즘;Android 컨트롤 imageView,setBackgroundResource(id);
비교적 간단 한 편 이 고 관련 된 기본 은 모두 기초 지식 이다.
3.기본 적 인 사고
  1.자원 파일 초기 화
  2.실제 루틴 대상 new Thread()만 들 기
  3.handler 메커니즘,sendMessage(msg);현재 디 스 플레이 자원 그림 을 다음 으로 변경 하기 위해 스 레 드 정 보 를 처리 합 니 다.
  4.스 레 드 는 수면 시간 을 설정 하여 그림 윤파 의 시간 간격 을 설정 합 니 다.
  5.일정 시간 마다 handler 체 제 를 통 해 정 보 를 보 내 이미지 자원 의 변환 을 실현 하여 윤 방 을 실현 한다.
-->>코드 구현:
  (1)layot 레이아웃:ImageView 컨트롤 하나만
k1.jpg,k2.jpg,k3,jpg 는 세 장의 그림 이다.

(2)  자바 코드 는 배경 그림 에 대한 라운드 변환 작업 을 실현 합 니 다:

package com.example.ususaltest; 
 
import android.app.Activity; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.widget.ImageView; 
 
public class MainActivity extends Activity { 
 
  int i = 1;//   
  private ImageView imageView; 
  @Override 
  protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
 
    initView();//     
    initEvent();//     
     
  } 
   
  private void initView() { 
    imageView = (ImageView) findViewById(R.id.id_image); 
  } 
   
  private void initEvent(){ 
     
     
    final Handler handler = new Handler(){ 
      @Override 
      public void handleMessage(Message msg) {//    ,    
        super.handleMessage(msg); 
        if (msg.what == 1)  
          imageView.setBackgroundResource(R.drawable.k1);//           
        else if (msg.what == 2)  
          imageView.setBackgroundResource(R.drawable.k2); 
        else if (msg.what == 3)  
          imageView.setBackgroundResource(R.drawable.k3); 
        else  
          imageView.setBackgroundResource(R.drawable.k1); 
      } 
    }; 
     
    new Thread(new Runnable() { 
      @Override 
      public void run() { 
        while (true) { 
          try { 
          Thread.sleep(3000);//   3   
        } catch (InterruptedException e) {e.printStackTrace();} 
        Message message = new Message(); 
        message.what = i; 
        handler.sendMessage(message);//     
         
        if(i == 3)//3      ,   
          i = 0; 
         
        i++; 
        } 
      } 
    }).start(); 
  } 
 
} 

(3)여기 서 이미지 순환 방송 효 과 를 실 현 했 지만 감상 도가 높 지 않 고 애니메이션 같은 것 을 적당 하 게 추가 하여 그림 을 전환 할 때 더욱 역 동적 이 고 동태 적 인 변환 을 할 수 있 으 며 변환 과정 을 볼 수 있 습 니 다.단순 한 정태 적 인 변환 이 아 닙 니 다.
확장 확장 애니메이션
확대 애니메이션 을 추가 하여 그림 을 바 꿀 때 교체 과정 을 볼 수 있 고 동적 으로 윤 방 기능 을 볼 수 있 습 니 다.

new Thread(new Runnable() { 
      @Override 
      public void run() { 
        while (true) { 
          try { 
          Thread.sleep(3000); 
        } catch (InterruptedException e) {e.printStackTrace();} 
        Message message = new Message(); 
        message.what = i; 
        handler.sendMessage(message);//     
        //       
        <span style="background-color: rgb(51, 255, 255);">AnimationSet set = new AnimationSet(true); 
        ScaleAnimation scale = new ScaleAnimation(1.5f, 1.0f, 1.5f, 1.0f ,Animation.RELATIVE_TO_SELF, 0.5f ,Animation.RELATIVE_TO_SELF, 0.5f); 
        scale.setDuration(500); 
        set.addAnimation(scale); 
        imageView.setAnimation(set);</span> 
         
        if(i == 3)//3      ,   
          i = 0; 
         
        i++; 
        } 
      } 
    }).start(); 
이렇게 하면 효과 가 좀 좋아 질 뿐만 아니 라 변위 애니메이션 도 추가 하여 그림 을 바 꿀 때 그림 을 오른쪽 에서 들 어 오 게 하거나 왼쪽 에서 들 어 오 거나 오른쪽 에서 나 가게 할 수 있다.
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기