我想在gridview中显示图像,底部写有文字。所以我拿了一个按钮并设置背景并设置壁纸。这给出了一个带有文本的图像,我可以在其上做任何工作。
我使用的代码是
Button
android:id="@+id/img"
android:layout_gravity="center"
android:gravity="bottom|center"
android:layout_width="100dp"
android:paddingBottom="4dp"
android:textSize="13dp"
android:layout_height="100dp">
</Button>
Button imageView = (Button) rowView.findViewById(R.id.img);
imageView.setText(web[position]);
imageView.setBackgroundResource(imageId[position]);
我得到的结果是第一张图片,但这里的问题是难以阅读某些图片上的文字
我希望文本以第二张图像上写的自己的背景书写。那么我该怎样做才能达到这个目的。你的建议对我有价值。亲切地建议,先谢谢
答案 0 :(得分:2)
对GridView项使用以下布局:
<RelativeLayout
android:layout_width="100dp"
android:layout_height="100dp">
<ImageView
android:id="@+id/img"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<TextView
android:id="@+id/caption"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:background="#55000000"
android:color="#ffffffff"/>
</RelativeLayout>
您不限于使用单个视图作为列表项。在Android上,通常使用复合布局作为列表项。
当前示例包括将图像本身与底部对齐的TextView重叠。请注意,对齐是在TextView本身上完成的;不是包含的文字。
答案 1 :(得分:1)
我建议你 1)取一个Linearlayout而不是按钮,然后设置Gravity = bottom | centerInHorizontal 2)采用Textview Inside Linearlayout将背景设置为文本视图并设置所需的文本 设置重力=中心
多数民众赞成......并获得LinearLayout Click事件......
答案 2 :(得分:0)
layout.xml
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageview"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="centerCrop" />
<LinearLayout
android:id="@+id/linear_layout"
android:layout_width="match_parent"
android:background="@drawable/shadow"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="vertical">
<TextView
android:id="@+id/TextView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Name"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/TextView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="number"
android:textAppearance="?android:attr/textAppearanceSmall" />
</LinearLayout>
</RelativeLayout>
并创建shadow.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<gradient
android:angle="270"
android:endColor="#33000000"
android:centerColor="#11000000"
android:startColor="#00000000" />
</shape>
答案 3 :(得分:0)
试试这种方式,希望这可以帮助您解决问题。
<强> colors.xml 强>
<resources>
<color name="transparent_background">#CC4d4d4d</color>
</resources>
<强> grid_item.xml 强>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<FrameLayout
android:layout_width="100dp"
android:layout_height="wrap_content">
<ImageView
android:layout_width="match_parent"
android:layout_height="100dp"
android:adjustViewBounds="true"
android:src="@drawable/ic_launcher"/>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:gravity="center"
android:padding="7dp"
android:background="@color/transparent_background"
android:text="Games"/>
</FrameLayout>
</LinearLayout>