2014-06-21 2 views
0

내가 만드는 데 필요한 디자인 개념이 있습니다. 주어진 해상도로 설계되었습니다 : 480x800. 중간에 가로로 정렬되어야하는 너비 390px의 상자가 있습니다. 그래서 양쪽에 45 픽셀 남았습니다.안드로이드에서 같은 비율로 렌더링하기 위해 이미지의 크기를 조절하는 방법

Android에서 레이아웃을 만들 때 상자 너비를 dp로 지정해야합니다. 그래서 나는 dp-> px 계산기를 사용하여 그것이 나타내는 숫자를 확인합니다. 그것은, hdpi, 480x800 전화에서 상자를 390px 너비로 만들려면 폭 252dp를 설정해야한다고 알려줍니다. 설정하고 에뮬레이터를 시작하면 비율이 올바르게 표시됩니다.

<EditText 
    android:id="@+id/txtBox" 
    android:layout_width="262dp" 
    android:layout_height="37dp" 
/> 

에뮬레이터를 720x1280, hdpi로 변경합니다. 상자의 너비는 어느 정도입니까? 252dp (390px)가됩니까? 그렇다면 상자는 화면의 절반 만 차지하며 내 비율은 해제됩니다.

올바른 비율을 만들기 위해 이미지 너비와 크기를 어떻게 설정해야합니까? 무엇이 그것을 동적으로 만들 것인가?

답변

0

이미지는 안드로이드에서 다루기가 어렵습니다. 해상도 요소로 인해 한 장치의 이미지가 다른 장치보다 비율이 다른 것처럼 보입니다. 해결책은 적절한 화면 밀도에 적합한 이미지를 사용하는 것입니다. 개발자 사이트 아이콘도 참조하십시오. drawable-hdpi와 같은 폴더에 대체 리소스를 제공함으로써 이미지를 올바르게 렌더링 할 수 있습니다. 또한 좋은 프로그래밍 실습으로 layout_width 또는 height로 wrap_content 또는 match_parent를 사용하십시오.

+0

그래서 정확한 dp 값을 사용하지 않아야합니까? 이미지 크기 자체에 의존해야합니까? – Nestor

+0

잘 이미지 크기 자체에 의존하는 것은 내가 일반적으로하는 일입니다. 하지만 서버에서 이미지와 텍스트가로드 된 listview와 같은 경우에는 일관성있게 보이게하기 위해 50 dp 높이와 50 dp 너비와 같은 dp를 사용하여 대략 필요한 크기로 너비와 높이를 설정합니다. 내가 res 폴더에서 이미지를 사용할 경우 적절한 픽셀을 만들고 크기에 의존합니다. –

+0

불행히도이 EditText에 배경 이미지를 사용해야하고 * wrap_content *가 사용되는 경우 부모를 채 웁니다. http : // stackoverflow. co.kr/questions/17315901/edittext-background-image-fills-parent를 사용하면 수정 값을 사용해야하는 것 같습니다. – Nestor

관련 문제