2016-09-14 8 views
0

サイズに応じてコンテナサイズが "GridLayout"のイメージが必要です。イメージの縦横のサイズ変更 - アンドロイド

ちょうど横のサイズをキャッチしますが、縦も必要です。

私には何が欠けていますか?おかげ

enter image description here

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:orientation="vertical" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@mipmap/fondo_01"> 


<GridLayout 
    android:layout_width="match_parent" 
    android:layout_height="250dp" 
    android:useDefaultMargins="false" 
    android:background="@drawable/corners_main_layout" 
    android:animationCache="false" 
    android:layout_margin="@dimen/padding_white" 
    tools:layout_margin="@dimen/padding_white" 
    android:columnOrderPreserved="false" 
    android:columnCount="3"> 


    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:orientation="vertical" 
     android:layout_columnWeight="1" 
     android:id="@+id/linearLayout"> 
     <ImageView 
      android:src="@drawable/ic_skinav" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      android:id="@+id/idskinav" /> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/skinav" 
      android:layout_gravity="center" 
      android:textColor="@android:color/black" 
      /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:orientation="vertical" 
     android:layout_columnWeight="1" 
     android:id="@+id/linearLayout9"> 
     <ImageView 
      android:src="@drawable/ic_social" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      android:id="@+id/idsocial" /> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/social" 
      android:layout_gravity="center" 
      android:textColor="@android:color/black" 
      /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:orientation="vertical" 
     android:layout_columnWeight="1" 
     android:id="@+id/linearLayout8"> 
     <ImageView 
      android:src="@drawable/ic_stats" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      android:id="@+id/idstats" /> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/stats" 
      android:layout_gravity="center" 
      android:textColor="@android:color/black" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:orientation="vertical" 
     android:layout_columnWeight="1" 
     android:id="@+id/linearLayout10" 

     > 
     <ImageView 
      android:src="@drawable/ic_alerts" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      android:id="@+id/idalerts" /> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/alerts" 
      android:layout_gravity="center" 
      android:textColor="@android:color/black" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:orientation="vertical" 
     android:layout_columnWeight="1" 
     android:id="@+id/linearLayout2"> 
     <ImageView 
      android:src="@drawable/ic_inbox" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      android:id="@+id/idinbox" /> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/inbox" 
      android:layout_gravity="center" 
      android:textColor="@android:color/black" 
      /> 

    </LinearLayout> 

    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:orientation="vertical" 
     android:layout_columnWeight="1" 
     android:id="@+id/linearLayout3"> 
     <ImageView 
      android:src="@drawable/ic_info" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:scaleType="fitXY" 
      android:id="@+id/idinfo" /> 
     <TextView 
      android:layout_height="wrap_content" 
      android:layout_width="wrap_content" 
      android:text="@string/info" 
      android:layout_gravity="center" 
      android:textColor="@android:color/black" 
      /> 
    </LinearLayout> 

</GridLayout> 


</LinearLayout> 

はそれを行うための別の簡単な方法はありますか?私は新しいConstraintLayoutを試しましたが、成功しませんでした。

------ UPDATE ----

enter image description here

答えて

1

あなたのグリッド項目の適切なサイズのための正方形の画像表示を使用することができます。

以下に示すようにImageViewのクラスを継承する必要があり、あなたのImageViewのために動的にサイズを定義するための別のクラスを作成します。

public class SquareImageView extends ImageView { 

    public SquareImageView(Context context) { 
     super(context); 
    } 

    public SquareImageView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public SquareImageView(Context context, AttributeSet attrs, int defStyle) { 
     super(context, attrs, defStyle); 
    } 

    @Override 
    protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
     super.onMeasure(widthMeasureSpec, widthMeasureSpec); 

    int width = getMeasuredWidth(); 
     setMeasuredDimension(width, width); 

    } 
} 

setMeasuredDimension(幅、幅);自動的に高さを幅として設定します。以下に示すように、XMLファイルの

がImageViewのの代わりにビューとして、このクラスを使用する:返信用

<com.packagepath.SquareImageView 
    android:id="@+id/Imageview" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" /> 
+0

こんにちは、おかげで、ワークス!ありがとう!! – daicon

+1

コンテナが小さいグリッドの場合、それに応じて比率を設定する必要があります。あなたが与えているコンテナのサイズは、それがまともに見えるように各行に少なくとも4必要があります。私は自分自身でこのような状況に直面しています。私は自分自身を明確にしたことを願っています。 –

+0

もう少し小さな問題があります..... android layout_columnWeight = "1"の代替手段はありますか? APIは> 21 ....としか動作しません>必要です> 16 – daicon

関連する問題