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;
}
});
}
원 도
시 뮬 레이 터 효과
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.