이거때문에 정말 미치겠네요..
사람 한명 구하는셈 치시고 ㅠ 노하우 있으신분 도움 부탁드립니다..
스마트폰과 갤탭 동시에 구현되게 만들고 싶습니다..
문제는 이미지 크기.....
LinearLayout으로 3개의 이미지를 가로로 배열한다고 했을때..
weight 속성으로 가로는 비율줘서 늘려집니다..
문제는 세로 방향입니다..
이미지가 원래 가로대 세로 비가 유지되게 하고싶은데 도저히 이걸 어떻게 해야할지 모르겠습니다..
그냥 한 화면에 나오는건 원래 이미지 높이가 전체 화면크기의 얼마나 차지하는지의 정도로 하여 어느정도 유지를 시킬수가 있습니다만..
문제는 제가 스크롤뷰를 사용해야하는데.. 이 스크롤 뷰에서는 도저히 높이를 맞출수가 없습니다..
스크롤뷰 자체가 전체 크기가 정해져있지 않기때문에 weight 속성도 안먹히고..
혹시나해서 xml 레이아웃이 아닌 자바소스로 크기를 지정하여 줄려고 해보았는데.. 레이아웃 속성은 상대적인 속성이라 자바코드로 아예 안되게 되있더군요..
혹시... 해상도에 따른 가로 세로 비율을 유지시키는 노하우 같은거 있으신분.. 한번만 구원해주세요 ;;
아.. 그리고 이미지 파일 크기 자체를 다르게 하는 방법도 있겠으나.. 일단 태블릿의 경우 이미지 drawable- 어느 폴더에 적용이 되는지도 모르겠고.. xlarge라는 말이 있기도 했으나 해보진 않았습니다.. 이게 맞나요??
만약 이게 맞다면 또 문제가 있는게.. 갤탭도 7인치가있고 10.1 인치가 있는데.. 이 두개 역시 폴더로 구분이 가능한지....
가장 최선은 비율을 유지시키는 방법입니다 ㅠㅠ.. 이미지 파일이 너무 많아 큰 해상도의 이미지까지 따로 담기에는 쓸데없이 용량을 많이 차지할듯 하여 그다지 하고 싶진 않은 방법입니다..
혹시 이것을 의미하시는건 아니신지요?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<ScrollView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/android"
/>
</ScrollView>
<ScrollView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/android"
/>
</ScrollView>
</LinearLayout>
제가 원하는건 아니네요 ㅠ 그런데.. 이거 돌려보니 제 예상과 결과가 다르게 나오네요..
혹시 설명 부탁드려도 될가요..
예상으로는 일단 스크롤뷰가 가로로 1:1 나눠먹기 하고 있는것까지는 맞는데...
중간에 이미지 뷰의 크기가 fill_parent로 줬음에도 불구하고 wrap_content 로 배치한것 처럼 나오네요..
세로방향이야 스크롤뷰때문에 전체를 차지할수 없지만.. 가로방향으로는 어떻게 이미지 크기 그대로 나오는건지..
그리고 gravity를 가운데로 준적이 없는데도 가운데에서 나오구요..
스크롤뷰의 특징같은 건가요??
이걸까요?
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<HorizontalScrollView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/android"
/>
</HorizontalScrollView>
<HorizontalScrollView
android:layout_width="0dip"
android:layout_height="fill_parent"
android:layout_weight="1"
>
<ImageView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:src="@drawable/android"
/>
</HorizontalScrollView>
</LinearLayout>
가장 쉽게 해결하려면 해상도별 이미지를 따로 만드시는게 젤 편할거 같네요.
drawable-hdpi-1024x600
이것처럼 뒷부분을 해당 해상도에 맞는 폴더를 만드시면 그 해상도에 맞는 폴더의 이미지를 가지고 옵니다.
글쓰신분과 같은 문제로 고생좀 했는데요. 간단하게 해결했습니다...
갤럭시 태블릿 10.1을 기준으로 레이아웃 새로 구성하였는데, Layout-xlarge에 태블릿용 Layout를 만들어주시면 됩니다...
물론 태블릿Layout에서 쓸 이미지는 따로 drawable-xhdpi에 넣어두시고, 자세한 사항은
http://developer.android.com/guide/practices/screens_support.html
여기에서 확인하시기 바랍니다 :) 처음엔 되게 어려웠는데 ㅠㅠ
스크롤뷰 안의 이미지뷰를 사용할 때 질문자님같은 문제가 도출되는데용...
이미지뷰에
android:adjustViewBounds="true"
속성을 추가하세요
이미지 비율에 따라서 이미지뷰 비율도 맞춰주는겁니다
이걸로 하니깐 스크롤뷰의 위아래 공백 안생기네요
<ScrollView
.....>
<ImageView
...
android:adjustViewBounds="true"
android:scaleType="centerCrop"
다만.. 기기 가로해상도보다 작은 이미지 사용해서 실험해보면 다 안차죠.
그러므로
안드로이드 기기 해상도는 현재 가로800*세로1280픽셀이 젤 크니깐
가로 800픽셀이상 이미지 사용하면 만사형통할듯요...