首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

背景可绘制不符合Android中TextView的绑定

是指在Android开发中,使用TextView控件时,无法直接将背景可绘制对象与TextView进行绑定的问题。

背景可绘制是指可以通过绘制代码或者资源文件来创建的可绘制对象,例如ShapeDrawable、BitmapDrawable等。在一些情况下,我们希望将这些背景可绘制对象应用到TextView的背景上,以实现自定义的背景效果。

然而,TextView的背景属性只支持指定资源文件作为背景,而不支持直接使用背景可绘制对象。这意味着无法直接将背景可绘制对象与TextView进行绑定。

解决这个问题的方法是通过自定义TextView的子类来实现。我们可以继承TextView,并重写其onDraw方法,在该方法中绘制我们想要的背景可绘制对象。具体步骤如下:

  1. 创建一个继承自TextView的子类,例如CustomTextView。
  2. 在CustomTextView中重写onDraw方法。
  3. 在onDraw方法中,使用Canvas对象绘制我们想要的背景可绘制对象。
  4. 在布局文件中使用CustomTextView替代原来的TextView。

以下是一个示例代码:

代码语言:txt
复制
public class CustomTextView extends TextView {
    private Drawable backgroundDrawable;

    public CustomTextView(Context context) {
        super(context);
        init();
    }

    public CustomTextView(Context context, AttributeSet attrs) {
        super(context, attrs);
        init();
    }

    public CustomTextView(Context context, AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
        init();
    }

    private void init() {
        // 初始化背景可绘制对象
        backgroundDrawable = new ShapeDrawable(new OvalShape());
        backgroundDrawable.getPaint().setColor(Color.RED);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        // 绘制背景可绘制对象
        backgroundDrawable.setBounds(0, 0, getWidth(), getHeight());
        backgroundDrawable.draw(canvas);

        // 绘制文本内容
        super.onDraw(canvas);
    }
}

在上述示例中,我们创建了一个CustomTextView类,重写了onDraw方法,在该方法中先绘制背景可绘制对象,然后再调用父类的onDraw方法绘制文本内容。

使用CustomTextView替代原来的TextView后,就可以实现背景可绘制对象与TextView的绑定了。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云移动开发平台:https://cloud.tencent.com/product/mwp
  • 腾讯云云原生应用引擎:https://cloud.tencent.com/product/nae
  • 腾讯云数据库服务:https://cloud.tencent.com/product/cdb
  • 腾讯云服务器:https://cloud.tencent.com/product/cvm
  • 腾讯云音视频处理:https://cloud.tencent.com/product/mps
  • 腾讯云人工智能:https://cloud.tencent.com/product/ai
  • 腾讯云物联网平台:https://cloud.tencent.com/product/iotexplorer
  • 腾讯云存储服务:https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务:https://cloud.tencent.com/product/baas
  • 腾讯云元宇宙:https://cloud.tencent.com/product/mu
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • Android TextView setText 空指针异常

    第一次发现这问题,记录一下,在适配器里面给TextView设置一个int类型值,然后闪退报错,DeBug模式下查看了布局和id,均没有问题,再次查看日志输出,Caused By: android.content.res.Resources...$NotFoundException:String resource ID #0x86,发现有两个词引起了注意String Resources,才知道TextView在内部实现时设置类型为String...,所以用String.valueOf(),这里再啰嗦几句,在String类型转化问题上,String.valueOf()效率最高,因为虚拟机对它进行了特殊处理,其次是toString,最后是+""拼接形式...,拼接String形式内部实现其实就是toString,但是要相对复杂一些,拼接过程中产生了常量和一些判断条件,效率低下,详情见源码

    1.7K10

    AndroidTextView文字设置不同颜色

    在项目的过程中会遇到在一行文字,部分功能需要不同文字颜色来展示,下面介绍两种方式实现: 效果图: [wqs2rn595h.png] 这里写图片描述 方式一: 用SpannableStringBuilder...来实现 TextView tv=(TextView)findViewById(R.id.tv); String content = "只会玩战士回复冷云他大叔:啊哈哈哈或"; SpannableStringBuilder...如果要为文字添加背景颜色,替换为BackgroundColorSpan。0为文本颜色改变起始位置,5为文本颜色改变结束位置。最后一个参数为布尔型,可以传入以下四种。...: TextView tv=(TextView)findViewById(R.id.tv); String str="只会玩战士回复冷云他大叔:啊哈哈哈或"; tv.setTextSize(15); tv.setText(Html.fromHtml(str)); ---- 小编整理了一份Android

    9.7K20

    Android TextView显示图片4种方式详解

    我们知道,TextView控件一般是用来显示文本,而图片一般是用ImageView控件来显示。 那TextView能否显示图片呢?答案是肯定!下面列出常见4种方式。...1、XML文件中指定属性值 这种方式应该是最常用了,在TextView左上右下显示图片,可用 android:drawableLeft android:drawableTop android:...drawableRight android:drawableBottom 比如我们要在TextView顶部设置图片,代码如下: <TextView android:id="@+id/textview...是加到了img标签,然后通过实现htmlImageGetter接口中getDrawable()方法取得图片。...以上就是在Android TextView显示图片4种方式,每种方式都是自己应用场景,大家根据自己情况选择正确方式

    6.5K20

    Android开发全屏背景显示方案

    这个启动画面往往会将ActionBar和Status Bar隐藏掉,然后用户进入一种沉浸状态,形成更强烈视觉冲击。...一方面,这可以给用户留下更深刻使用体验,从而产生一定品牌效应;另一方面,也给应用启动初始化留下了充裕时间,避免因为启动时间过长而给用户留下不良印象。因此,全屏显示在手机应用得到了广泛应用。...那么这篇博客中就记录下全屏显示一些实现方案。 实现 方案一:给布局管理器设置背景图片。这种方案是通过设置android:background和NoActionBar主题来实现。 1 <!...具体说来就是将ImageView作为FrameLayout第一个子视图,基于FrameLayout属性,后面添加子视图都将叠加到第一个子视图之上,间接地实现了全图片视图背景。 1 <?...但是要注意当加载分辨率较大图片时、或者图片较多时,容易导致内存溢出。 方案三、使用Java代码动态加载图片设置全屏背景。这种方案原理是,根据显示屏幕大小对图片进行缩放,从而对屏幕尺寸进行适配。

    2.7K50

    AndroidTextView实现分段显示不同颜色字符串

    关于TextView TextViewAndroid开发中最最常见控件之一,在API记录属性有很多,但实际开发,也遇到很多有趣需求,值得去尝试,所以记录下来,既可以给大家提供参考,同时自己需要时候也方便查找...最近开发过程中有个小小知识点,就是TextView显示内容需要分段显示不同颜色,如下图所示 ?...SpannableString可以精确控制一个长长字符串第几个到第几个字符样式 SpannableString spannableString = new SpannableString("jakjfkajfjaj...), 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); 以上只是列举了几个常见用法,更多可以参考android.text.style包下面的几个类 ?...以上就是TextView分段显示不同样式字符串方法,希望对大家有用 总结 以上就是这篇文章全部内容了,希望本文内容对大家学习或者工作具有一定参考学习价值,如果有疑问大家可以留言交流,谢谢大家对

    3.8K30

    AndroidItem实现点击水波纹效果

    系统自带水波纹实现 系统自带方法非常方便,只需要给相应空间设置背景背景内容则为系统自带 selectableItemBackground ,这样的话,水波纹就会在TextView所在区域内进行绘制...<TextView android:background="?android:attr/selectableItemBackground" ... / 先上效果图 ?...="@color/dark_blue" <item android:drawable="@color/blue"/ </ripple 其中item颜色是控件正常状态背景色,ripple颜色是点击时出现颜色...需要为控件设置 android:clickable="true" <TextView xmlns:android="http://schemas.android.com/apk/res/android...截止到现在,21及以上版本已经覆盖了90%设备。 foreground设置 现在点击水波纹效果只有在抬起手指时候才能看到,不符合一些项目的需求。

    3.8K10

    Android开发:ListView、AdapterView、RecyclerView全面解析

    @null android:dividerHeight 用于设置分隔条高度 android:background属性 设置列表背景 android:entries 指定一个数组资源,Android...ArrayAdapter:简单、易用Adapter,用于将数组绑定为列表项数据源,支持泛型操作 SimpleAdapter:功能强大Adapter,用于将XML控件绑定为列表项数据源...SimpleCursorAdapter:与SimpleAdapter类似,用于绑定游标(直接从数据数取出数据)作为列表项数据源 BaseAdapter:自定义ListView,通用用于被扩展。...SimpleAdapter 定义 功能强大Adapter,用于将XML控件绑定作为列表项数据源 特点 可对每个列表项进行定制(自定义布局),能满足大多数开发需求场景,灵活性较大 步骤...- 控制Item间间隔(绘制)-通过ItemDecoration - 控制Item增删动画- 通过ItemAnimator mRecyclerView = findView(R.id.id_recyclerview

    3.5K30

    Android入门教程 | Button,TextView背景设置

    Button,TextView背景设置 如何给按钮增加动感? Button 有按下(pressed)和未按下之分,我们给这 2 种状态不同背景颜色和文字颜色。...selector介绍 StateListDrawable 是在 XML 文件定义绘制对象,它会根据对象状态,使用多个不同图像来表示同一个图形。...例如,Button 微件可以是多种不同状态(按下、聚焦或这两种状态都不是)其中一种,并且可利用状态列表绘制对象,为每种状态提供不同背景图片。 可以在 XML 文件描述状态列表。...每个图形由单一  元素内  元素表示。每个  均使用各种属性来描述应用作绘制对象图形状态。...如果TextView没有设置点击事件,用户点击或按着这个TextView是不会发生背景变化。 给TextView设置点击事件后,再点击就可以看到背景变化了。

    89600

    Carson带你学Android:全面解析列表ListView与AdapterView

    被回收至缓存,入屏ItemView会优先从该缓存获取 注: 只有Item完全离开屏幕后才复用,这也是为什么ListView要创建比屏幕需显示视图多1个原因:缓冲 显示视图 即:第1个Item...@null android:dividerHeight 用于设置分隔条高度 android:background属性 设置列表背景 android:entries 指定一个数组资源,Android...ArrayAdapter:简单、易用Adapter,用于将数组绑定为列表项数据源,支持泛型操作 SimpleAdapter:功能强大Adapter,用于将XML控件绑定为列表项数据源 SimpleCursorAdapter...:与SimpleAdapter类似,用于绑定游标(直接从数据数取出数据)作为列表项数据源 BaseAdapter:自定义ListView,通用用于被扩展。...6.2 SimpleAdapter 定义:功能强大Adapter,用于将XML控件绑定作为列表项数据源 特点:可对每个列表项进行定制(自定义布局),能满足大多数开发需求场景,灵活性较大 步骤

    1.1K10

    Android应用界面开发——ListView,GridView,ScrollView

    简单说显示一个ListView前提有:ListView布局、ListViewitem布局和Adapter,最后通过setAdapter将视图和数据绑定。...对于ListView优化在后边Demo中会提到。 ListView常用属性: android:lsitSelector:设置列表项被点击时背景色。...android:dividerHeight:设置列表项分割线高度。 android:headerDividerEnabled:如果设为false,则不在header View之后绘制分割线。...所以我要写个这个界面布局就很清晰了,整个界面分为四部分,第一部分标题栏是一个LinearLayout,从左边开始放一个ImageView和一个TextView;第二部分是一个背景为灰色RelativeLayout...,里边放一个包含ImageView和TextViewLinearLayout,居中显示;第三部分是一个ListView,每个item中放一个TextView并居中显示;第四部分是一个背景为灰色LinearLayout

    1.4K30

    Android入门教程 | res资源目录简介与shape绘制和使用

    drawable/:位图文件(.png、.9.png、.jpg、.gif)或编译为以下绘制对象资源子类型 XML 文件: 位图文件、九宫格(可调整大小位图)、状态列表、形状、动画绘制对象、其他绘制对象...当我们想给button或者TextView设定背景时,我们会想到纯色背景。如果要求圆角背景,或是渐变色背景,我们该如何实现呢? 一种办法是制作相应美术素材,也就是切图。...[1240] shape介绍 shape又称为“形状绘制对象”。为了简便,以下都称作shape或者“shape文件”。 shape是一种在 XML 文件定义通用形状。... 在layoutTextView使用这个背景...android:text="RFDev 圆角背景TextView 1" android:textColor="#ffffff" /> TextView高度设置成了50dp,而背景圆角半径设置成了

    1.5K20

    Android自定义可点击ImageSpan并在TextView内置View

    有的时候可能想在TextView添加一些图片,比如下图,发短信输入联系人时,要把联系人号码换成一个图片,但这个图片无法用固定某张图,而是根据内容进行定制,这更像一个view。...在此之前,如果你还不了解SpannableString.setSpan(),不了解LinkMovementMethod是什么,建议先看下笔者解析TextViewURL等指定特殊字符串与点击事件 首先...public boolean onTouchEvent(TextView widget, Spannable buffer, MotionEvent event) { int action...最后别忘了TextView调用setMovementMethod时,传入是我们ClickableMovementMethod.getInstance()方法。...当然,你如果嫌显示效果太大或太小,也可以通过这个方法调整图片大小。其他步骤相信大家看过笔者解析TextViewURL等指定特殊字符串与点击事件 ,实现起来应该是没有困难

    1.9K20

    Android 应用开发】Android UI 设计之 TextView EditText 组件属性方法最详细解析

    TextView文本链接相关XML属性方法 (1) 设置单个连接 文本转链接 : 将指定格式文本转换成单击超链接形式; -- XML属性 : android:autoLink, 该属性有属性值 :..." android:autoLink="phone" android:text="18511896990 单击电话链接"/> <TextView android...绘制图像相关XML属性 绘图设置 : XML属性可以指定在TextView文本 左, 右, 上, 下, 开始, 结尾 处设置图片, 还可以设置文本 与图片之间间距; -- 在文本框四周绘制图片XML...设置颜色 大小 阴影 设置文本颜色 :  -- XML属性 :android:textColor, 值是颜色代码, 也可以是资源文件颜色; -- 方法 : setTextColor()....设置TextView文本边框 背景渐变 使用背景 : TextView 是没有边框, 如果要加上边框, 可以通过设置TextView背景添加边框; 自定义背景: 使用XML文件定义一个drawable

    1.7K30
    领券