1. 摘要:

论坛上遇到个小伙伴求助,“如何防止Android的TextView背景图片被拉伸”。搜到了一篇博客《Android TextView里直接显示图片的三种方法》[1]。方法一:重写TextView的onDraw方法;方法二:利用TextView支持部分Html的特性,直接用api赋图片;方法三:用ImageSpan和SpannableString。美中不足的是,并未给出方法一的具体实现。为了方便其它人遇到同样问题时,可以更容易解决。本文将给出方法一:重写TextView的onDraw方法的具体实现。

2. 效果:

为了实现该效果,写了一个简单的自定义控件AfxTextView。所有的控件layout_height均为wrap_content。

第一行为AfxTextView+background+layout_width:wrap_content+paddingLeft;

第二行为AfxTextView+background+layout_width:wrap_content;

第三行为AfxTextView+background+layout_width:wrap_content+paddingRight;

第四行为TextView+layout_width:wrap_content+paddingLeft;

第五行为TextView+layout_width:wrap_content;

第六行为TextView+layout_width:wrap_content+paddingRight;

第七行为TextView+background+layout_width:wrap_content;

第八行为AfxTextView+background+layout_width:match_parent+paddingLeft;

第九行为AfxTextView+background+layout_width:match_parent;

第十行为AfxTextView+background+layout_width:match_parent+paddingRight;

第十一行为TextView+layout_width:match_parent+paddingLeft;

第十二行为TextView+layout_width:match_parent;

第十三行为TextView+layout_width:match_parent+paddingRight;

3 代码:

AfxTextView继承自TextView,重写了onMeasure()和onDraw()方法。为了方便学习和讨论,已把代码上传到 github: https://github.com/afunx/AfxTextView

4. 引用:

[1] 《Android TextView里直接显示图片的三种方法》

Android TextView重写onMeasure和onDraw显示无拉伸图片(含实现代码链接)相关推荐

  1. android模拟器dns,网络异常,显示无网络(修改DNS方法)

    纵观全网,有许多使用夜神小伙伴反馈说,在安卓模拟器更新游戏或在线更新文件的时候无法更新,会出现"更新失败.网络异常.浏览器显示无网络"等情况,可以戳应用无法联网.网络异常的解决办法 ...

  2. Android TextView多行最后一行显示不全

    最近发现个奇怪的问题CheckBox与TextView一起放在一个横向LinearLayout中,当TextView文字内容超过一行时,最后一行文字显示不全,给控件加上背景之后,发现TextView与 ...

  3. TextView图文混排,显示添加的图片,三种常用方法,亲测

    图文混排,文字就不说了,主要是显示图片的方法 1.TextView使用ImageSpan显示图片 [java] view plaincopy <span style="font-siz ...

  4. 小米手机怎么关闭移动卡信号显示无服务器,一条指令代码教你解决小米手机信号和待机问题...

    小米手机的性价比一直是让米粉所追寻的为之疯狂的价值追求所在,但是当你你买回一台小米手机的时候,有时候手机信号不好怎么办? 看到这里或许很多人会说这是小米手机的硬件问题,许多米粉可能都不知道小米手机信号 ...

  5. Android手机之间通过声音传输信息方法——声波通信(含工程代码)

    大家可能都用过支付宝的声波支付,即两个终端同时打开该功能,一个终端作为发送端send,一个终端作为接收端get,send将本终端上发出的请求信息按照约定规则的算法进行声音编码,并播放出来,get端接收 ...

  6. Android TextView滚动的两种方案

    方案有两个 1使用Android原生TextView,优点是简单,缺点是一旦失去焦点,就无法滚动了. 2自定义TextView,缺点是稍微麻烦点,优点是可以一直滚动. 方案1 使用Android原生T ...

  7. android文字自动滚动,Android TextView文字横向自动滚动(跑马灯)

    TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true" 2.设置可滚到,或显示样式:android:elli ...

  8. android webview webp,iOS WebView中使用webp格式图片的方法

    webp格式图片 webp格式图片是google推出的,相比jpg png有着巨大的优势,同样质量的图片webp格式的图片占用空间更小,在像电商这样图片比较多的App中,使用webp格式图片会很有优势 ...

  9. android webview webp,在WebView中使用webp格式图片

    很早之前,我们的项目中就已经采用了webp格式,但是由于webView本身并不能解析webp格式,所以我们基于webView的文章详情页就无法使用到这项优化. 那么有没有什么办法能实现呢?当然是有的. ...

最新文章

  1. Molecule – 帮助你构建跨平台的 HTML5 游戏
  2. CentOS7 安装 Node.js
  3. python 将两幅图拼接_清华王教授典藏的python电子书,整整10个G拿去不谢
  4. 爬虫入门五(Phantomjs和selenium)
  5. deepsooncms在Ubuntu 14.04上部署教程
  6. 头条限流是什么原因_抖音为什么会被限流?被限流了如何补救?
  7. 16篇最新推荐系统论文送你(文末附打包下载链接)
  8. 公办低分二本_河南最适合“二本”考生的30所公办大学,录取分低,考生不要错过...
  9. Case Western Reserve大学通过思科网络构建智能学习环境
  10. 软件测试需求分析还可以这样做
  11. Java导出Excel 复杂表头
  12. c# 火狐浏览器怎么嵌入窗体中_语言C#.net 如何将子窗体嵌入到父窗体里面
  13. UltraEdit Crack,完全集成的编辑和数据管理工具
  14. 打蚊子表情包_打死蚊子表情包 - 打死蚊子微信表情包 - 打死蚊子QQ表情包 - 发表情 fabiaoqing.com...
  15. 【每日随笔】飞书云文档使用 ( 注册飞书云文档账号 | 创建云文档 | 分享云文档 )
  16. RabbitMQ heartbeat原理
  17. 积分上限函数的导数例题 笔记
  18. TensorFlow Session 中关于 GPU 的配置项解析 ——转自 慢慢学TensorFlow 微信公众号
  19. sql with ties_SQL WITH TIES子句
  20. 测针对精密测量的重要性

热门文章

  1. 大数据基本概念hadoop、hadoop生态系统hdfsMapReduce
  2. 原生JS利用XMLHttpRequest实现Get和Post请求
  3. 阿ken的HTML、CSS的学习笔记_浮动与定位(笔记六)
  4. 高性能处理器架构与编程实验(基础实验2:openEuler系统环境实验)
  5. 二、计算机网络体系架构——网络工程师成长之路
  6. 孙源的Runloop视频整理
  7. ESMTP协议与SMTP协议
  8. 大津二值化算法(Otsu)
  9. C语言笔记例子 continue 用法
  10. leaflet 加载天地图