因为需求的缘故,需要对liview显示项做黑白相间的处理:
其实就是在函数public View getView(int position, View convertView, ViewGroup parent)
中,加上:
if (position % 2 == 0) {
convertView.setBackgroundResource(R.drawable.list_gray_9);
} else {
convertView.setBackgroundResource(R.drawable.list_white_9);
}
可是,正如上述代码可见,我加入的是9-patch图片,直接导致我的convertView中的内容无法正常显示了。
这可怎么办呢?我在xml中直接设置9-patch给一个layout什么的,都是正常显示呀,这个怎么就出问题了呢?
问题在于以下函数:
public void setBackgroundResource (int resid) Set the background to a given resource. The resource should refer to a Drawable object or 0 to remove the background.
也就是说,其实
setBackgroundResource接着调用的应该是:setBackgroundDrawable函数,让我们看看setBackgroundDrawable的描述:
public void setBackgroundDrawable (Drawable d) Since: API Level 1 Set the background to a given Drawable, or remove the background.
If the background has padding, this View's padding is set to the background's padding. However, when a background is removed, this View's padding isn't touched. If setting the padding is desired, please use setPadding(int,
int, int, int).Parametersd The Drawable to use as the background, or null to remove the background
也就是说,因为9-patch有自己的padding,所以convertView自己的padding被覆盖了!那可咋办呢?
其实知道这个了就很简单了,只要在代码setBackgroundResource之后加上(Remember:一定是这句之后!)一句:
convertView.setPadding(0, 0, 0, 0);
就可以解决问题了~
是不是挺奇怪的,其实很多时候我们有些问题解决不了是因为不了解其内部机制(当然有些时候其内部机制稍显怪诞),只要了解了,便可以应用自如了。
希望各位能从我的文章中找到有用的东西~~~
分享到:
相关推荐
在Android开发中,创建具有边框的TextView以及使用9-patch图像是一项常见的任务。9-patch图像是Android系统提供的一种特殊格式的图片,用于实现可拉伸和自适应的图形,而带边框的TextView则可以提升用户界面的视觉...
在Android应用开发中,TextView控件是不可或缺的一部分,它用于显示文本内容,是用户界面(UI)中的基本元素。TextView不仅能够展示静态文本,还能处理动态数据,如时间、日期等,甚至支持富文本格式,如加粗、斜体...
在Android开发中,改变TextView的背景色是常见的交互设计需求,尤其在用户界面设计中,通过点击事件来改变TextView的状态可以提升用户体验。本教程将详细讲解如何实现Android中点击TextView时改变其背景颜色。 首先...
在上述代码中,`android:background="@drawable/content"`指定了9.PNG作为背景,而TextView的背景也是同一9.PNG,这样无论文本长度如何,都会保持背景的自适应特性。 总之,9.PNG格式是Android系统提供的一种高效...
一、[Android实例]实现TextView里的文字有不同颜色 转eoe:http://www.eoeandroid.com/thread-4496-1-1.html import android.text.Html; TextView t3 = (TextView) findViewById(R.id.text3); t3.setText( ...
在Android开发中,UI设计和实现常常面临一个问题:如何让背景图片自适应各种尺寸和比例的界面,同时保持图片不失真。"android-9.png_的使用教程[参照].pdf"是一个关于解决这一问题的教程,它介绍了Android系统特有的...
在这个例子中,TextView的背景被设置为`@drawable/content`,即我们之前创建的9.png图片,它可以随着TextView的内容长度动态拉伸,同时保持图像的质量和完整性。 总之,9.png格式是Android平台解决背景自适应和不...
在Android开发中,TextView是用于显示单行或多行文本的视图组件,它在界面设计中扮演着重要的角色。为了使TextView更具交互性,我们常常需要根据用户操作或特定条件来改变其显示状态,比如选中、聚焦或者按下等。在...
FastTextView FastTextView is faster than Android TextView. FastTextView use StaticLayout to render Spanned String, so it support most features of Android TextView. Inspired by : ...
在Android开发中,`TextView` 是一个非常基础且重要的组件,通常用于展示纯文本内容。然而,当开发者需要在文本中插入图片或者实现更复杂的格式时,`TextView` 的功能就显得有些不足。针对这种情况,Android 提供了...
在Android开发中,TextView是用于显示文本的基本组件。然而,除了文字之外,有时我们还需要在TextView中嵌入图片或图像,以实现更丰富的用户界面。本文将详细介绍如何在Android的TextView中显示图片和图像。 首先,...
`HtmlTextView`是Android开发中的一个开源项目,主要用于在3.0及以上版本的TextView中解析并展示HTML代码,尤其在处理网络上的图像或图片时非常有用。然而,根据描述,这个项目在Android 7.0及更高版本上的表现可能...
在Android开发中,自定义视图是常见的需求之一,尤其是当系统提供的标准控件无法满足设计或功能需求时。本文将深入探讨如何实现一个自定义的`TextView`,该`TextView`具有可变的圆角边框和动态颜色变化的能力。 ...
在Android应用开发中,文本的输入与显示是十分常见的需求,尤其在教育、科学计算或者技术分享类的应用中,有时我们需要展示复杂的数学公式或者代码片段。`Android-FlexibleRichTextView`是一个专门为此目的设计的库...
在Android开发中,TextView是用于显示文本的基本组件,但其实它并不局限于纯文本,还能通过一些方式来显示图片。这个Demo就是关于如何在TextView中嵌入并显示图片的一个实例。以下我们将详细探讨如何利用TextView的...
Android Android Android Android 开发背景 � 计算技术、无线接入技术的发展,使嵌入式系统逐渐有能力对桌面系统常规业务进行支持。 � 谷歌长期以来奉行的移动发展战略:通过与全球各地的手机制造商和移动运营商...
### Android 控件详解:TextView #### 一、引言 在Android开发中,`TextView`是使用最频繁的UI组件之一,主要用于展示静态文本信息。本文将深入探讨`TextView`的各种属性及其应用场景,帮助开发者更好地理解和掌握...
在Android开发中,TextView是一个非常基础且重要的组件,它用于显示单行或多行文本,能够进行文字格式化、样式设置以及交互操作。本压缩包"Android应用源码之4.TextView控件学习.zip"包含了关于TextView深入学习的...
然后,在XML布局文件中,你可以创建一个`TextView`或者自定义的对话框视图,并设置这些9-patch图像作为背景。例如: ```xml xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width=...
### Android控件大全以及布局控件的使用方式 #### 一、Android开发环境搭建 **1. 安装JDK (Java Development Kit)** 要进行Android应用开发,首先需要安装JDK。可以从以下链接下载适合您操作系统的JDK版本: - ...