Android,큰 그림 스크롤 디 스 플레이 구현

2596 단어 Android굴러가다
질문:
       저 는 비교적 큰 그림 이 있 습 니 다.예 를 들 어 길이 와 너비 가 모두 화면의 두 배 크기 입 니 다.제 가 실현 하고 싶 은 기능 은 먼저 그림 을 가운데 로 표시 하 는 것 입 니 다.그림 이 너무 커서 일부분 만 표시 한 다음 에 드래그 를 통 해 그림 의 부 드 러 운 스크롤 을 실현 할 수 있 습 니 다.
       구 글 맵 처럼 맵 뷰 라 는 컨트롤 을 사용 하면 화면 에 지도 전 체 를 끌 수 있 지만 지도 정 보 량 이 너무 많아 서 한 번 에 너무 빨리 끌 면 화면 에 새로 고침 흔적(회색 칸)이 잠시 표 시 됩 니 다.
       mapView 를 사용 하여 기 존 그림 을 불 러 오 려 고 했 지만 성공 하지 못 했 습 니 다.나중에 Srillview 컨트롤 과 가장 자주 사용 하 는 imageView 를 사 용 했 지만 성공 하지 못 했 습 니 다. 
해결:
       대량의 자 료 를 조사 한 후에 imageView 를 사용 하여 onTouch 사건 에 협조 하면 해결 할 수 있 습 니 다.
키 코드:
레이아웃 파일 에서 imageView 컨트롤 은 다음 과 같 습 니 다.

<ImageView 
  android:layout_width="wrap_content" 
  android:layout_height="wrap_content" 
  android:id="@+id/img" 
  android:scaleType="center" 
  android:background="#fff" 
  android:src="@drawable/picName" 
/> 
Activity 파일 의 주요 코드 는 다음 과 같 습 니 다.

@Override 
public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
 
  setContentView(R.layout.xml_name_layout); 
 
  final ImageView switcherView = (ImageView) this.findViewById(R.id.img); 
 
  switcherView.setOnTouchListener(new View.OnTouchListener() { 
 
    public boolean onTouch(View arg0, MotionEvent event) { 
 
      float curX, curY; 
 
      switch (event.getAction()) { 
 
        case MotionEvent.ACTION_DOWN: 
          mx = event.getX(); 
          my = event.getY(); 
          break; 
        case MotionEvent.ACTION_MOVE: 
          curX = event.getX(); 
          curY = event.getY(); 
          switcherView.scrollBy((int) (mx - curX), (int) (my - curY)); 
          mx = curX; 
          my = curY; 
          break; 
        case MotionEvent.ACTION_UP: 
          curX = event.getX(); 
          curY = event.getY(); 
          switcherView.scrollBy((int) (mx - curX), (int) (my - curY)); 
          break; 
      } 
 
      return true; 
    } 
  }); 
 
} 

원 도

시 뮬 레이 터 효과


이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기