Android TextView重写onMeasure和onDraw显示无拉伸图片(含实现代码链接)
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显示无拉伸图片(含实现代码链接)相关推荐
- android模拟器dns,网络异常,显示无网络(修改DNS方法)
纵观全网,有许多使用夜神小伙伴反馈说,在安卓模拟器更新游戏或在线更新文件的时候无法更新,会出现"更新失败.网络异常.浏览器显示无网络"等情况,可以戳应用无法联网.网络异常的解决办法 ...
- Android TextView多行最后一行显示不全
最近发现个奇怪的问题CheckBox与TextView一起放在一个横向LinearLayout中,当TextView文字内容超过一行时,最后一行文字显示不全,给控件加上背景之后,发现TextView与 ...
- TextView图文混排,显示添加的图片,三种常用方法,亲测
图文混排,文字就不说了,主要是显示图片的方法 1.TextView使用ImageSpan显示图片 [java] view plaincopy <span style="font-siz ...
- 小米手机怎么关闭移动卡信号显示无服务器,一条指令代码教你解决小米手机信号和待机问题...
小米手机的性价比一直是让米粉所追寻的为之疯狂的价值追求所在,但是当你你买回一台小米手机的时候,有时候手机信号不好怎么办? 看到这里或许很多人会说这是小米手机的硬件问题,许多米粉可能都不知道小米手机信号 ...
- Android手机之间通过声音传输信息方法——声波通信(含工程代码)
大家可能都用过支付宝的声波支付,即两个终端同时打开该功能,一个终端作为发送端send,一个终端作为接收端get,send将本终端上发出的请求信息按照约定规则的算法进行声音编码,并播放出来,get端接收 ...
- Android TextView滚动的两种方案
方案有两个 1使用Android原生TextView,优点是简单,缺点是一旦失去焦点,就无法滚动了. 2自定义TextView,缺点是稍微麻烦点,优点是可以一直滚动. 方案1 使用Android原生T ...
- android文字自动滚动,Android TextView文字横向自动滚动(跑马灯)
TextView实现文字滚动需要以下几个要点: 1.文字长度长于可显示范围:android:singleLine="true" 2.设置可滚到,或显示样式:android:elli ...
- android webview webp,iOS WebView中使用webp格式图片的方法
webp格式图片 webp格式图片是google推出的,相比jpg png有着巨大的优势,同样质量的图片webp格式的图片占用空间更小,在像电商这样图片比较多的App中,使用webp格式图片会很有优势 ...
- android webview webp,在WebView中使用webp格式图片
很早之前,我们的项目中就已经采用了webp格式,但是由于webView本身并不能解析webp格式,所以我们基于webView的文章详情页就无法使用到这项优化. 那么有没有什么办法能实现呢?当然是有的. ...
最新文章
- Molecule – 帮助你构建跨平台的 HTML5 游戏
- CentOS7 安装 Node.js
- python 将两幅图拼接_清华王教授典藏的python电子书,整整10个G拿去不谢
- 爬虫入门五(Phantomjs和selenium)
- deepsooncms在Ubuntu 14.04上部署教程
- 头条限流是什么原因_抖音为什么会被限流?被限流了如何补救?
- 16篇最新推荐系统论文送你(文末附打包下载链接)
- 公办低分二本_河南最适合“二本”考生的30所公办大学,录取分低,考生不要错过...
- Case Western Reserve大学通过思科网络构建智能学习环境
- 软件测试需求分析还可以这样做
- Java导出Excel 复杂表头
- c# 火狐浏览器怎么嵌入窗体中_语言C#.net 如何将子窗体嵌入到父窗体里面
- UltraEdit Crack,完全集成的编辑和数据管理工具
- 打蚊子表情包_打死蚊子表情包 - 打死蚊子微信表情包 - 打死蚊子QQ表情包 - 发表情 fabiaoqing.com...
- 【每日随笔】飞书云文档使用 ( 注册飞书云文档账号 | 创建云文档 | 分享云文档 )
- RabbitMQ heartbeat原理
- 积分上限函数的导数例题 笔记
- TensorFlow Session 中关于 GPU 的配置项解析 ——转自 慢慢学TensorFlow 微信公众号
- sql with ties_SQL WITH TIES子句
- 测针对精密测量的重要性