Handler 간단 한 앨범 뷰 어 인 스 턴 스 코드 만 들 기

3712 단어 Handler앨범뷰 어
Handler 클래스 소개
Android 플랫폼 에서 새로 시 작 된 스 레 드 는 Activity 의 Widget 에 접근 할 수 없고 실행 상 태 를 외부 로 보 낼 수도 없습니다.그러면 Handler 체제 가 정 보 를 전달 해 야 합 니 다.Handler 류 는 android.os 패키지 에 있 고 주요 기능 은 Activity 의 Widget 과 응용 프로그램의 스 레 드 간 의 상호작용 을 완성 하 는 것 입 니 다.
Handler 클래스 가 있 는 프로그램 을 개발 하 는 절 차 는 다음 과 같 습 니 다.
1.Activity 나 Activity 의 Widget 에서 Handler 클래스 의 대상 을 개발 하고 handlerMessage 방법 을 다시 쓴다.
2.새로 시작 하 는 스 레 드 에서 sendEmpty Message 나 sendmessage 방법 을 호출 하여 Handler 에 메 시 지 를 보 냅 니 다.
3.Handler 클래스 의 대상 은 handlerMessage 방법 으로 메 시 지 를 받 은 다음 메시지 에 따라 다른 동작 을 수행 합 니 다.
Handler 사용 사례(간단 한 앨범 뷰 어)
레이아웃 파일 을 작성 합 니 다.activity_handler_sample.xml 코드 는 다음 과 같 습 니 다.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent"
  android:gravity="center">
  <ImageView
    android:id="@+id/myImageView"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:gravity="center"/>
</LinearLayout>
새 MyTread.java 파일 을 만 듭 니 다.코드 는 다음 과 같 습 니 다.

package com.example.sample_9_9;
public class MyTread extends Thread{    //      
  HandlerSampleActivity activity;     //activity  
  int what = 1;              //     what 
  public MyTread(HandlerSampleActivity activity){ //   
    this.activity = activity;    //  activity   
  }
  @Override
  public void run(){
    while(true){       //  
      activity.myHandler.sendEmptyMessage((what++)%4);
      //    ,%4            
      try{
        Thread.sleep(2000);    //     
      }
      catch (Exception e){     //    
        e.printStackTrace();   //    
      }
    }
  }
}
HandlerSampleActivity.java 파일 코드 는 다음 과 같 습 니 다.

package com.example.sample_9_9;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.ImageView;
public class HandlerSampleActivity extends AppCompatActivity {
  ImageView myImageView;
  Handler myHandler = new Handler() { //    Handler  
    @Override
    public void handleMessage(Message msg) {  //         
      switch (msg.what) { //  what 
        case 0:
          myImageView.setImageResource(R.drawable .a);
          break;
        case 1:
          myImageView.setImageResource(R.drawable .b);
          break;
        case 2:
          myImageView.setImageResource(R.drawable .c);
          break;
        case 3:
          myImageView.setImageResource(R.drawable .d);
          break;
      }
      super.handleMessage(msg);
    }
  };
  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_handler_sample);
    myImageView = (ImageView) findViewById(R.id.myImageView);
    MyTread myThread = new MyTread(this);  //     
    myThread.start(); //    
  }
}
효과 도 는 다음 과 같다.

이상 의 이 Handler 가 간단 한 앨범 뷰 어 를 만 드 는 인 스 턴 스 코드 는 바로 편집장 이 여러분 에 게 공유 한 모든 내용 입 니 다.여러분 께 참고 가 되 고 저희 도 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기