안녕하세요~초보개발자 꾸준한 노력만이 입니다~
미디어 DB를 통해 썸네일 이미지를 그리드뷰로 뿌리고 이미지 선택시
해당이미지를 볼수 있도록 구현하였습니다.
WebView를 이용하여 멀티터치를 구현했습니다만...한가지 문제가 발생했습니다.
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<WebView
android:id="@+id/detailimg_web"
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollbars="none"
android:clickable="false"
android:focusable="false"></WebView>
</RelativeLayout>
위 xml에서 보시면 RelativeLayout안에 WebView를 위치시키고 width와 height를 wrap_content로 하였고
WebView의 위치를 부모의 중심(android:layout_centerInParent="true")에 오도록 설정하였습니다.
소스코드를 보면
public class DetailImage extends Activity {
WebView mWeb;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.detailimage);
mWeb = (WebView) findViewById(R.id.detailimg_web);
mWeb.setBackgroundColor(Color.BLACK);
mWeb.setFocusable(false);
WebSettings set = mWeb.getSettings();
set.setSupportZoom(true);
set.setBuiltInZoomControls(true);
set.setDefaultZoom(WebSettings.ZoomDensity.MEDIUM);
Intent intent = getIntent();
String path = intent.getStringExtra("path");
File file = new File(path);
mWeb.loadUrl("file://" + file.getAbsolutePath());
}
}
이런식으로 파일 경로를 인텐트로 전달받아 보여주게 됩니다.
실제 구현되는 화면을 보면 줌컨트롤러의 위치를 봤을때
<1>은 최초 실행시 화면으로 WebView가 뷰그룹의 center에 위치하고 있다
<2>는 최소배율로 축소했을때인데 최초 실행시 Width와 Heigth를 유지하고 있다.
<3>은 화면을 벗어나도록 확대했을때인데 뷰그룹의 Width와 Height와 같아진 것으로 보임
<4>는 다시 화면보다 이미지가 작도록 축소를 하자 <3>의 Width와 Heigtht를 유지하고 있는 것으로 보입니다.
참고로 최초 실행시 이미지영역 외부는 터치인식이 안되는 것으로 보아 WebView의 크기가 이미지 사이즈와 동일하다고 볼수 있고 확대해서 이미지가 화면에 꽉차게 되면 화면 전체가 터치가 인식이 됩니다...이후에 축소를 하더라도 마찬가지로 화면전체에서 터치가 인식이 됩니다...
android:layout_width="wrap_content"
android:layout_height="wrap_content"
이렇게 WebView를 셋팅되어 있어 이미지 크기만큼 WebView의 크기도 변할줄 알았는데 위와 같은 현상이 나타나서
어찌할줄 모르고 있습니다 ㅜㅜ
구현하고 싶은것은 이미지가 가운데 위치하면서 멀티터치에 의해서 확대/축소되도록 하고 싶습니다.
이런 현상이 왜 일어나는지도 궁금하고 제가 원하는 데로 구현도 하도록 하려면 어떻게 해야 하는지
안드로이드 선배님들께 조언을 구합니다~ 꾸벅↓
<1> <2>
<3> <4>




부모의 중심으로 정열 하신뒤에 아래 옵션은 왜 주셨는지요?
제가 직접 테스팅을 안해봤지만 중복 옵션때문에 저런식으로 되는 것 같다는 생각이 듭니다만...
android:layout_gravity="center_vertical|center_horizontal"