J'ai les éléments suivants design.Aligner des images et du texte avec GridView
Comme vous pouvez le voir, le texte des jours de la semaine et les images du "titre de la colonne" ne sont pas alignés sur les éléments GridView.
Voici le fichier XML complet:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:weightSum="11"
tools:context="com.test.me.fragments.patientResume">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="4"
android:background="@drawable/gradient">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:id="@+id/aboveLights"
android:src="@mipmap/above_lights"
android:contentDescription="@string/above_lights" />
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:src="@mipmap/under_lights"
android:contentDescription="@string/under_lights" />
<com.test.dashboard.view.CircleImageView
android:id="@+id/centerImg"
android:layout_width="104dp"
android:layout_height="104dp"
android:layout_centerInParent="true"
android:background="@mipmap/ic_default_avatar" />
<com.test.dashboard.view.widget.RobotoLightTextView
android:id="@+id/PatientName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@id/aboveLights"
android:layout_alignTop="@id/aboveLights"
android:layout_alignRight="@id/aboveLights"
android:layout_alignBottom="@id/aboveLights"
android:layout_margin="1dp"
android:gravity = "center_horizontal"
android:textSize="20sp"
android:text="Mauricio Affonso"
android:textColor="@color/colorPrimaryDark" />
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
android:layout_marginLeft="25dp">
<com.test.dashboard.view.widget.RobotoLightTextView
android:id="@+id/took_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/took"
android:textColor="@color/colorPrimaryDark" />
<com.test.dashboard.view.widget.RobotoLightTextView
android:id="@+id/took_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/took_header"
android:gravity="center"
android:text="-"
android:textAlignment="center"
android:textColor="@color/colorPrimaryDark"
android:textSize="25sp" />
</RelativeLayout>
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginRight="20dp">
<com.test.dashboard.view.widget.RobotoLightTextView
android:id="@+id/missed_header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/missed"
android:textColor="@color/colorPrimaryDark" />
<com.test.dashboard.view.widget.RobotoLightTextView
android:id="@+id/missed_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/missed_header"
android:layout_alignRight="@+id/missed_header"
android:layout_below="@+id/missed_header"
android:gravity="center"
android:text="-"
android:textColor="@color/colorPrimaryDark"
android:textSize="25sp" />
</RelativeLayout>
<com.test.me.wave.WavesView
android:id="@+id/waves_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="25dp"
android:background="#ddf7ff">
<com.test.dashboard.view.widget.RobotoLightTextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:id="@+id/countPatient"
android:textAlignment="center"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
android:textColor="@color/colorPrimaryDark"
android:text="1 OF 1"
/>
</RelativeLayout>
<RelativeLayout
android:id="@+id/titleImages"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/backgroundLight">
<ImageView
android:id="@+id/morning"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxWidth="30dp"
android:maxHeight="30dp"
android:scaleType="fitCenter"
android:src="@mipmap/ic_morning" />
<ImageView
android:id="@+id/noon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxWidth="30dp"
android:maxHeight="30dp"
android:src="@mipmap/ic_noon" />
<ImageView
android:id="@+id/evening"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxWidth="30dp"
android:maxHeight="30dp"
android:src="@mipmap/ic_evening" />
<ImageView
android:id="@+id/bedtime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxWidth="30dp"
android:maxHeight="30dp"
android:src="@mipmap/ic_bedtime" />
</RelativeLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="7"
android:id="@+id/tableContainer"
android:background="@color/backgroundLight">
<GridView
android:id="@+id/grid"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/date_layout"
android:layout_margin="@dimen/activity_horizontal_margin"
android:gravity="center"
android:horizontalSpacing="10dp"
android:numColumns="4"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:stretchMode="columnWidth"
android:verticalSpacing="5dp" />
<com.test.me.grid.DateLayout
android:id="@+id/date_layout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerHorizontal="true"
android:layout_marginBottom="5dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/grid"
android:layout_marginTop="30dp"
android:id="@+id/Sun"
android:textColor="@color/colorPrimaryDark"
android:layout_marginLeft="7dp"
android:text="SUN" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/grid"
android:layout_marginTop="75dp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginLeft="7dp"
android:id="@+id/Mon"
android:text="MON" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/grid"
android:layout_marginTop="120dp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginLeft="7dp"
android:id="@+id/Tue"
android:text="TUE" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/grid"
android:layout_marginTop="167dp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginLeft="7dp"
android:id="@+id/Wed"
android:text="WED" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/grid"
android:layout_marginTop="215dp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginLeft="7dp"
android:id="@+id/Thu"
android:text="THU" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/grid"
android:layout_marginTop="260dp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginLeft="7dp"
android:id="@+id/Fri"
android:text="FRI" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignTop="@+id/grid"
android:layout_marginTop="310dp"
android:textColor="@color/colorPrimaryDark"
android:layout_marginLeft="7dp"
android:id="@+id/Sat"
android:text="SAT" />
</RelativeLayout>
</LinearLayout>
Comme vous pouvez le voir le contenu de RelativeLayout titleImages et la semaine du texte jours devraient être alignés sur les articles GridView mais je vais avoir des résultats différents sur différentes résolutions de téléphone . J'ai même essayé de changer dynamiquement les positions:
int test[] = new int[2];
int space = grid.getHorizontalSpacing();
int height = grid.getMeasuredHeight()/7;
int Width = grid.getColumnWidth()/2;
int paddingTop = grid.getPaddingTop();
int paddingLeft = grid.getPaddingLeft();
Resources r = getResources();
float spacePx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, space + 10, r.getDisplayMetrics()) ;
float paddingTopPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, paddingTop - 7, r.getDisplayMetrics());
float paddingLeftPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, paddingLeft - 12, r.getDisplayMetrics());
grid.getLocationInWindow(test);
for(int i = 0; i < 7; i++){
Days[i].setY(paddingTopPx + (test[1] - grid.getMeasuredHeight()) + ((i +1)* (height)));
}
for(int i = 0; i < 4; i++){
icons[i].setX((paddingLeftPx + test[0]) + (i) * (spacePx + Width));
}
Je ferais mieux de suggérer utiliser un autre dimens d'utilisation de mise en page pour la taille fixe de vue que les téléphones et les tablettes – g7pro
Je travaille sur cela, mais ne pouvait pas faire complètement votre besoin que je ne Ayez le temps – g7pro
Si vous pouvez juste me montrer le chemin pour y arriver, c'est déjà une aide précieuse! –