带有FrameLayout问题的CustomGridview

时间:2018-03-23 18:25:23

标签: android gridview android-framelayout

我创建了一个自定义gridview,这是我的custom_gridview.xml:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/framelayout"
    android:layout_width="125dp"
    android:layout_height="125dp">

    <ImageView
        android:scaleType="fitXY"
        android:id="@+id/imageViewGrid"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />

    <TextView
        style="@style/shadowText"
        android:id="@+id/textViewGrid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|bottom"
        android:text="test" />

</FrameLayout>

这是activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.manhtuan.bai2xemanh.MainActivity">

    <GridView
        android:id="@+id/gridView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#000"
        android:numColumns="3"
        android:horizontalSpacing="10dp"
        android:verticalSpacing="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>

gridview将显示如下: Image

我想让每个图像都显示为方形,所以我设置了Framelayout,同时高度为125dp,但是它不起作用,帮助我,我是初学者:(

1 个答案:

答案 0 :(得分:2)

由于图像尺寸的原因,这种情况很糟糕。 FrameLayout正在ImageView。将ImageView hight设置为与FrameLayout相同,如下所示 -

<FrameLayout android:id="@+id/framelayout"
             xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="125dp"
             android:layout_height="125dp">

    <ImageView
        android:id="@+id/imageViewGrid"
        android:layout_width="125dp"
        android:layout_height="125dp"
        android:scaleType="fitXY"
        android:src="@color/colorAccent"/>

    <TextView

        android:id="@+id/textViewGrid"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|bottom"
        android:text="test"/>

</FrameLayout>