2017-09-05 12 views
-1

나는 이미지의 왼쪽과 두 줄에 이미지가있는 간단한 격자보기를 가지고 있습니다. 이미지의 "ROWSPAN은"텍스트의 두 줄의 전체 높이를 사용하기 위해서는 2 :GridView에서 이미지 자동 크기 조절

<?xml version="1.0" encoding="utf-8"?> 
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:rowCount="2" 
    android:columnCount="2"> 

<ImageView 
    android:id="@+id/imageView" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_column="0" 
    android:layout_row="0" 
    android:layout_rowSpan="2" 
    android:src="@drawable/disconnected" /> 

<TextView 
    android:id="@+id/connectionText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:layout_column="1" 
    android:layout_row="0" 
    android:layout_rowSpan="1" 
    android:inputType="textPersonName" 
    android:text="Name" /> 

<TextView 
    android:id="@+id/stateText" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:ems="10" 
    android:layout_column="1" 
    android:layout_row="1" 
    android:layout_rowSpan="1" 
    android:inputType="textPersonName" 
    android:text="disconnected" /> 
</GridLayout> 

내 문제 : 나는 높이에 맞는 크기로 이미지를 자동 규모 싶습니다 두 줄의 텍스트를 네이티브 높이로 표시하는 대신 레이아웃이 자동으로 그렇게 할 수있는 방법이 있습니까?

감사합니다.

답변

3
<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:rowCount="2" 
     android:columnCount="2"> 

    <ImageView 
     android:id="@+id/imageView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_column="0" 
     android:layout_row="0" 
     android:scaleType="fitCenter" 
     android:layout_rowSpan="2" 
     android:src="@drawable/disconnected" /> 

    <TextView 
     android:id="@+id/connectionText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:layout_column="1" 
     android:layout_row="0" 
     android:layout_rowSpan="1" 
     android:inputType="textPersonName" 
     android:text="Name" /> 

    <TextView 
     android:id="@+id/stateText" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:ems="10" 
     android:layout_column="1" 
     android:layout_row="1" 
     android:layout_rowSpan="1" 
     android:inputType="textPersonName" 
     android:text="disconnected" /> 
</GridLayout> 

XML을 수정 했으므로 도움이 될 수 있습니다. 특정 너비 및 높이 값을 지정하고 가운데에 맞게 배율 유형을 설정했습니다.

프로그래밍에 의한 동적 높이를 설정할 수 있습니다,이 코드는 당신에게

 int first_view_hight = firstView.getLineHeight(); 


     int second_view_height = secondView.getLineHeight(); 


     int totalHeight = first_view_hight + second_view_height; 


     GridLayout.LayoutParams lp = (GridLayout.LayoutParams) setHeightImage.getLayoutParams(); 
     lp.height = totalHeight; 
     lp.width = totalHeight; 
     imageView.setLayoutParams(lp); 
+0

흠 도움이 될 것입니다, 그러나 이것은 바로 옆에 텍스트의 두 줄의 실제 크기로 동적으로 40x40 (DP)의 고정 된 크기로 확장하지 그것!? – Elmi

+0

도움이 될 수있는 답변을 업데이트했습니다. – RajatN