Android 自定义GridView项
如何创建如下所示的自定义GridView项 我写的布局图-Android 自定义GridView项,android,android-layout,gridview,android-linearlayout,android-gridview,Android,Android Layout,Gridview,Android Linearlayout,Android Gridview,如何创建如下所示的自定义GridView项 我写的布局图- <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:o
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/round_corner_drawable">
<ImageView
android:id="@+id/market_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/default_image"/>
<TextView
android:id="@+id/nameTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Text 1"/>
<TextView
android:id="@+id/priceTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Text 2"/>
</LinearLayout>
在设备上运行之后,我得到的结果如下。
imageview下面的文本被裁剪,不可见。我还希望imageview位于布局上方,如上图所示。请帮忙
我正在使用的图像-
尝试为图像布局赋予权重=1:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/round_corner_drawable">
<ImageView
android:id="@+id/market_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/default_image"/>
<TextView
android:id="@+id/nameTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Text 1"/>
<TextView
android:id="@+id/priceTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Text 2"/>
</LinearLayout>
根据上述xml。尝试为图像布局赋予权重=1:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:background="@drawable/round_corner_drawable">
<ImageView
android:id="@+id/market_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/default_image"/>
<TextView
android:id="@+id/nameTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Text 1"/>
<TextView
android:id="@+id/priceTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Text 2"/>
</LinearLayout>
按照上面的xml。尝试使用以下布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:id="@+id/anchor"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true" />
<ImageView
android:id="@+id/market_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/nameTV"
android:layout_below="@+id/anchor"
android:layout_centerHorizontal="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/nameTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_above="@+id/priceTV"
android:gravity="center_horizontal"
android:text="Text 1" />
<TextView
android:id="@+id/priceTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="5dp"
android:gravity="center_horizontal"
android:text="Text 2" />
</RelativeLayout>
尝试使用以下布局:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:orientation="vertical" >
<View
android:id="@+id/anchor"
android:layout_width="0dp"
android:layout_height="0dp"
android:layout_alignParentTop="true" />
<ImageView
android:id="@+id/market_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/nameTV"
android:layout_below="@+id/anchor"
android:layout_centerHorizontal="true"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:src="@drawable/ic_launcher" />
<TextView
android:id="@+id/nameTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_above="@+id/priceTV"
android:gravity="center_horizontal"
android:text="Text 1" />
<TextView
android:id="@+id/priceTV"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_marginLeft="5dp"
android:gravity="center_horizontal"
android:text="Text 2" />
</RelativeLayout>
或使用以下布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100"
android:orientation="vertical">
<ImageView
android:id="@+id/market_image"
android:layout_width="wrap_content"
android:layout_height=match_parent
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_weight="10"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/nameTV"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="45"
android:text="Text 1"/>
<TextView
android:id="@+id/priceTV"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="45"
android:text="Text 2"/>
</LinearLayout>
或使用以下布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:weightSum="100"
android:orientation="vertical">
<ImageView
android:id="@+id/market_image"
android:layout_width="wrap_content"
android:layout_height=match_parent
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_weight="10"
android:src="@drawable/ic_launcher"/>
<TextView
android:id="@+id/nameTV"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="45"
android:text="Text 1"/>
<TextView
android:id="@+id/priceTV"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_marginLeft="5dp"
android:layout_weight="45"
android:text="Text 2"/>
</LinearLayout>
我终于能够解决它了。 我写了下面的布局,以获得所需的输出
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="210dp"
android:layout_height="240dp"
android:background="@drawable/round_corner_drawable"
android:layout_marginTop="15dp">
<TextView
android:id="@+id/nameTV"
android:layout_above="@+id/priceTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Latin American Republic"/>
<TextView
android:id="@+id/priceTV"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="65$"/>
</RelativeLayout>
<ImageView
android:id="@+id/market_image"
android:layout_width="190dp"
android:layout_height="200dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:scaleType="fitXY"
android:src="@drawable/default_marketplace"/>
</RelativeLayout>
我终于能够解决它了。 我写了下面的布局,以获得所需的输出
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/rootView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<RelativeLayout
android:layout_width="210dp"
android:layout_height="240dp"
android:background="@drawable/round_corner_drawable"
android:layout_marginTop="15dp">
<TextView
android:id="@+id/nameTV"
android:layout_above="@+id/priceTV"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="Latin American Republic"/>
<TextView
android:id="@+id/priceTV"
android:layout_alignParentBottom="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:text="65$"/>
</RelativeLayout>
<ImageView
android:id="@+id/market_image"
android:layout_width="190dp"
android:layout_height="200dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:scaleType="fitXY"
android:src="@drawable/default_marketplace"/>
</RelativeLayout>
使用FrameLayout而不是LinearLayout我尝试使用FrameLayout,但我必须在imageview下方显示两个文本。使用FrameLayout而不是LinearLayout我尝试使用FrameLayout,但我必须在imageview下方显示两个文本。您尝试过我给出的第二种解决方案吗?您可以尝试将android:scaleType=“centerInside”放在图像视图中。你的形象有多高?我也试过第二种方法。在问题中添加图像,以便您可以检查它。此外,我还强制gridview只绘制两列,然后将gridview项设置为正方形,如问题中所述。您是否尝试过我给出的第二种解决方案?您可以尝试将android:scaleType=“centerInside”放在图像视图中。你的形象有多高?我也试过第二种方法。在问题中添加图像,以便您可以检查它。此外,我还强制gridview只绘制两列,然后将gridview项设置为正方形,如问题中所述