2011-02-03 4 views
14

주어진 URI (웹 서비스에서 가져온 이미지가 보안 된 장소에서 이미 내 애플리케이션에 저장되어 있음)에 대해 내 애플리케이션에서 이미지를 여는 ImageViewer 라이브러리를 검색하고 있습니다. "Samsung Galaxy S"ImageViewer-Activity는 pinch-zoom과 "vertical/horizontal"을 사용하기 때문에 정말 좋아합니다. 아무 것도 발견되지 않을 때 가장 적합한 뷰어가 호출되고Pinch-Zoom 및 Scrolling을 지원하는 Android ImageViewer 클래스

Intent i = new Intent(Intent.ACTION_VIEW); 
i.setDataAndType(uri, "image/*"); 
startActivity(i); 

: 또한 그것은 내가이 같은 목적으로 이미지를 열 수 있다는 사실을 알고 내 삼성 전화 :

에 매우 빠르게 사진을 확장 ActivityNotFoundException가 발생합니다. 멋져요!

하지만 보안상의 이유로 외부 의도로 이미지를 열 수 없다는 것이 문제입니다. 즉, 메뉴 옵션을 통해 외부 sd 카드에 저장된 이미지를 저장하거나 다른 사진 (이메일/트위터 또는 s.o.)으로 사진을 전송할 수있는 가능성이 없어야합니다. 그래서 내 응용 프로그램 내에서만 호출 할 수있는 내 자신의 ImageViewer-Class (Activity)를 작성해야합니다 ... 불행히도 이미지 변환에 익숙하지 않아서이 유스 케이스를 커버하는 모든 오픈 소스 프로젝트 (또는 라이브러리)가 있습니다. ?

나는 이미 구글에 물었고이 하나가 http://code.google.com/p/android-pinch/ 인 것을 발견했다. 그러나 그것은 잘 작동하지 않았다 (또한 스크롤 기능이 없다). 당신의 팁

감사합니다 :)

+0

질문 위의 첫 번째 점을 참조 2645648/its-there-a-built-in-api-for-handling-pinch-zoom-functionality-in-android – cimnine

답변

16

이미지를 처리 ​​할 수있는 이미지가 어딘가에 온라인 로컬에 저장되거나 경우 WebView를 사용하는 가장 쉬운 방법. WebView는 확대/축소 및 기타 기능을 지원합니다.

예 자바 :

String imageUrl = "file:///local/dir/image.jpg"; // http://example.com/image.jpg 
WebView wv = (WebView) findViewById(R.id.yourwebview); 
wv.getSettings().setBuiltInZoomControls(true); 
wv.loadUrl(imageUrl); 

XML 소스 : 나도 웹보기를 사용하고있어 지금이 순간

<WebView android:id="@+id/yourwebview" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" /> 
+0

그게 멋진 솔루션이에요, 고마워! 그것은 꼭해야만하는 방식으로 작동합니다. 나는 하나의 옵션'wv를 설정해야하지만.setInitialScale (100);'안드로이드에서 이미지를보기 쉽다.) 응용 프로그램의 내부 DB에 이미지가 저장되어 있습니까? 또는'wv.getSettings(). setCacheMode (WebSettings.LOAD_NO_CACHE);를 호출해야합니까? –

+0

캐시에 저장되어 있다고 생각하지 않습니다. – Floern

19

. 하지만 개념적으로 잘못된 것입니다. WebView는 이미지를 표시하는 것이 아니고 웹 콘텐츠를 표시하는 것이 아닙니다. WebView는 부피가 크고 복잡합니다. 당신은 그것을 사용자 정의하는 것을 제한했습니다. 예를 들어 확대/축소가 필요하지만 확대/축소 컨트롤을보고 싶지 않거나 다른 위치로 이동 한 다음 기본값으로 이동하려고합니다. 당신이 (사용 가능한 소스) 소니 에릭슨이 튜토리얼에서 볼 수 있으며, 자신을 구현할 수

  • 또한 크리스 Banes에서

    • PhotoView 위젯 :

      따라서, 나는 몇 가지 솔루션을이 문제에 대해 검색 및 발견 위젯 : part1, part2, part3

    • 그리고 GitHub의 또 다른 하나의 라이브러리 ImageViewZoom
    http://stackoverflow.com/questions/ :

    UPDATE

    크리스 Banes 사진을 확대하기위한 제스처를 지원하는 멋진 라이브러리를 생성, 핀치 - 투 - 줌 안드로이드에 대해도

  • +0

    예, "ImageViewZoom"이 작동하지만 API 레벨 8 이상에서만 작동합니다. – gregn3

    +0

    ImageViewZoom은 확대/축소를 지원하지 않습니다. 요즘 사용자가 손가락으로 꼬집어 이미지의 일부를 확대하려고 할 때 쓸모가 없습니다. – AndroidDev

    +1

    Chris Banes의 PhotoView 위젯이 멋지게 작동합니다! –