我怎样才能在ListView的TextView的背景颜色添加渐变效果?

针对这些问题:

在ListView中为TextView添加渐变效果会生成NPE

如何更改ListView上的颜色和字体

我想知道如何去设置一个ListView的梯度效果的TextView的背景?

在上面的其中一个问题中,我最终将渐变效果添加到了TextView的文本中。 在浏览第二个问题之后,似乎我只能添加固定的背景颜色。

我如何去添加渐变到背景? 我应该做一个CustomListAdapter

Solutions Collecting From Web of "我怎样才能在ListView的TextView的背景颜色添加渐变效果?"

你只需要创build一个可绘制的资源(见下面的例子),并将其添加到您为ListItem创build的布局。

可绘制的(在你的res \ drawable文件夹中 – 将它命名为listgrad.xml)可能如下所示:

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="@color/gradient_start" android:endColor="@color/gradient_end" android:angle="-270" /> </shape> 

你可以将它添加到你的列表项目的布局(你为此定义的layout.xml文件),就像这个代码片段:

 <TextView android:id="@+id/ranking_order" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/list_grad" /> ... 

一旦你创build一个渐变,你可以将它应用到几乎所有的东西,让它成为textView,布局或button。

要了解如何创build和使用渐变,请参阅此链接

要创build一个渐变,你需要把它添加到下面的目录

在这里输入图像说明

代码为渐变将是这样的 –

 <?xml version="1.0" encoding="UTF-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape> <gradient android:startColor="#ff2d9a59" android:centerColor="#ff42959a" android:endColor="#ff23729a" android:angle="135"/> </shape> </item> </selector> 

从这里推荐: 如何在Android中创build一个带有圆angular的ListView? (我发现它非常有用。)

将以下内容添加到文件(如gradient.xml)中,然后将其放置在(res / drawable / gradient.xml)目录中。

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#SomeGradientBeginColor" android:endColor="#SomeGradientEndColor" android:angle="270"/> <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" android:topLeftRadius="7dp" android:topRightRadius="7dp"/> </shape> 

完成创build该文件后,只需使用以下其中一种方法设置背景:

通过代码: listView.setBackgroundResource(R.drawable.customshape);

通过XML,只需将以下属性添加到容器(例如:LinearLayout或任何字段):

 android:background="@drawable/customshape"