0

나는 동그라미 이미지를 만들기 위해 cardview 내에있는 imageview를 가지고 있습니다. 스마트 폰에서는 이미지의 크기를 250 및 250dp로하고 싶습니다. 전화 폭의 약 80 %라고합시다.ImageView는 태블릿과 휴대 전화에서 똑같이 보입니다.

태블릿에서 이미지가 내 태블릿 너비의 약 80 %가되고 높이가 너비와 일치해야합니다. 그것을 달성하는 가장 좋은 방법은 무엇입니까. 감사?

다음은 스마트 폰에서 잘 보이는 250dp 너비와 높이를 수동으로 입력하는 코드입니다. 그러나 태블릿에서는 작게 표시됩니다. 당신이 할 수있는 일

<android.support.v7.widget.CardView 
    android:id="@+id/cardView" 
    android:layout_width="250dp" 
    android:layout_height="250dp" 
    android:elevation="12dp" 
    app:cardCornerRadius="125dp" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" 
    android:innerRadius="0dp" 
    android:shape="ring" 
    android:thicknessRatio="1.9" 
    android:layout_marginTop="20dp"> 
    <ImageView 
     android:layout_width="250dp" 
     android:layout_height="250dp" 
     android:id="@+id/image_album_art" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 
    </ImageView> 
</android.support.v7.widget.CardView> 

답변

0

Android는 쉽게 만들 수 있도록 설계되었습니다. 당신은 자원이 장치 구성 (즉, 화면 크기)에 따라 변경하려는 경우 특정 디렉토리에 해당 자원을 정의

res/layout-sw720dp - large (9"-10") tablets 
res/layout-sw600dp - small (7"-8") tablets 
res/layout - all other devices 

를 디렉터리 이름에 -sw600dp을 추가 할 때,이 "가장 작은 폭 600 DP를 의미 ". 즉,이 디렉토리는 화면 폭이 600dp 이상인 장치 용입니다. "최소 너비"는 화면의 어느 쪽이 더 작은 쪽을 의미하므로 세로 또는 가로 모두 1067dp x 600dp 화면은 600dp의 가장 작은 너비로 계산됩니다.

각 구성에 대한 레이아웃 파일 전체를 복사하여 위의 각 디렉토리에 하나씩 저장할 수 있습니다. 그러나보기 크기를 제외하고 모든 파일이 동일하면 많은 중복 코드가 생깁니다. 변경이 필요한 경우 세 파일 모두에서 변경해야하므로 실수로 이어질 수 있습니다.

여러 레이아웃을 갖는 대신 구성에 따라 다른 차원을 정의 할 수 있습니다. 레이아웃은 res/layout/이고, 치수는 res/values/

입니다. dimensions.xml 디렉토리를 새로 만들고 res/values 디렉토리에 넣으십시오. 다음과 같이 새로운 차원을 추가하십시오.

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <dimen name="album_art_size">250dp</dimen> 
</resources> 

이것은 휴대폰에 표시 될 파일입니다. 당신이 res/values, res/values-sw600dpres/values-sw720dp이 때문에

그런 다음, 두 개 더 values 디렉토리를 생성하고 그들에게 가장 작은 폭 한정자를 추가합니다. dimensions.xml을 새 디렉 토 리로 복사하십시오. 그런 다음 각 파일에서 album_art_size 크기를 수정할 수 있으며 응용 프로그램이 다른 화면 크기로 실행될 때 해당 dimensions.xml 파일이 표시됩니다.

마지막으로 수행 한 작업은 방금 작성한 album_art_size 크기로 레이아웃을 지정하는 것입니다. @dimen/album_art_size250dp 교체 : 이것은 당신이 당신의 80 % 화면 크기 대상에 충분히 가까이해야 각 장치 범주에 대한 특정 치수를 선택 할 수

android:layout_width="@dimen/album_art_size" 
android:layout_height="@dimen/album_art_size" 

. 화면 너비와 정사각형보기의 정확히 80 %가 필요하면 ImageView의 scaleTypeadjustViewBounds 속성을 사용하거나 Java 코드를 작성해야합니다.

0

형 대형 즉, 레이아웃 대형의 레이아웃의 폴더를 만든 다음 레이아웃 폴더에서 레이아웃을 복사 및 레이아웃 대형 폴더에 붙여 넣기 한 후 바로 높이와 폭에 따라 설정입니다 태블릿의 화면 크기는 450dp가 될 수 있습니다.