我有以下design。您可以看到,周日文本和“列标题”图像未与GridView项目对齐。将图像和文本与GridView对齐
下面是完整的XML文件:
<?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>
正如你所看到的RelativeLayout titleImages的内容和工作日文本应该对齐到GridView的项目,但我有不同的手机的分辨率不同的结果。我甚至尝试动态地改变位置:
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));
}
我更好的建议使用了的视图固定大小不同的布局使用梦诗在为手机和平板电脑 – g7pro
我就这一工作,但不能完全弥补作为您的需求,因为我不有时间 – g7pro
如果你可以告诉我发生这种事情的途径已经非常有帮助! –