Roh*_*esh 15 user-interface textview imageview android-layout
目标: 在图像顶部叠加文本标题.像这样的东西:
当前实现:我有一个CardView,包括一个ImageView和一个TextView.我可以把文字放在图像的顶部,但我不能得到那个背景的稀松布.
问题:我需要背景稀松布,因为没有它,文字在图像上难以辨认.
Stack: Android L
布局XML:
<android.support.v7.widget.CardView
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
android:id="@+id/event_cardView"
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_margin="3dp"
card_view:cardCornerRadius="10dp"
card_view:cardElevation="5dp">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="10dp">
<ImageView
android:id="@+id/eventImage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:contentDescription="eventImage"
android:src="@drawable/sample"
android:layout_alignParentTop="true" />
<TextView
android:id="@+id/eventName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:textColor="#000000"
android:textSize="15sp"
android:maxLines="5"
android:gravity="center"
android:layout_alignParentBottom="true"
android:text="Event Name" />
</RelativeLayout>
</android.support.v7.widget.CardView>
Run Code Online (Sandbox Code Playgroud)
非常感谢任何关于这一点的帮助.
Chr*_*can 19
创建一个只包含XML名称空间作为形状属性的形状可绘制资源.根据您是否需要实体或渐变稀松布,将更改形状元素的内容.
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<!-- The content of the shape will go here. -->
</shape>
Run Code Online (Sandbox Code Playgroud)
如果您想要一个实心的稀松布,请在您的shape元素中添加一个实体元素,并将属性android:color设置为某个带alpha的颜色.
<solid
android:color="#88000000"/>
Run Code Online (Sandbox Code Playgroud)
如果你想有一个渐变网格布,添加一个渐变元素与从Android命名空间中的如下属性:angle,centerY,startColor,centerColor,endColor,和type.如果要遵循Material Design准则(如在您提供的图像中),则渐变元素应具有以下值:
<gradient
android:angle="90"
android:centerY="0.3"
android:startColor="#CC000000"
android:centerColor="#66000000"
android:endColor="#00000000"
android:type="linear"/>
Run Code Online (Sandbox Code Playgroud)
最好将这些值提取并放在相关的资源文件中,例如dimens.xml和colors.xml,以便稀松布可以根据设备的配置而改变.
将稀松布保存为形状可绘制资源后,可以将其添加到TextView使用该android:background属性的背景中.使用TextView您提供的并假设您命名了scrim文件scrim.xml,修改如下:
<TextView
android:id="@+id/eventName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="2dip"
android:textColor="#000000"
android:textSize="15sp"
android:maxLines="5"
android:gravity="center"
android:layout_alignParentBottom="true"
android:text="Event Name"
android:background="@drawable/scrim"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6131 次 |
| 最近记录: |