Android 讓自定義TextView的drawableLeft與文本一起居中
前言
TextView的drawableLeft、drawableRight和drawableTop是一個(gè)常用、好用的屬性,可以在文本的上下左右放置一個(gè)圖片,而不使用更加復(fù)雜布局就能達(dá)到,我也常常喜歡用RadioButton的這幾個(gè)屬性實(shí)現(xiàn)很多效果,但是苦于不支持讓drawbleLeft與文本一起居中,設(shè)置gravity為center也無(wú)濟(jì)于事,終于有空研究了一下,這里與大家一起分享。
正文
一、效果圖
二、實(shí)現(xiàn)代碼
自定義控件
/** * drawableLeft與文本一起居中顯示 * * */ public class DrawableCenterTextView extends TextView { public DrawableCenterTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); } public DrawableCenterTextView(Context context, AttributeSet attrs) { super(context, attrs); } public DrawableCenterTextView(Context context) { super(context); } @Override protected void onDraw(Canvas canvas) { Drawable[] drawables = getCompoundDrawables(); if (drawables != null) { Drawable drawableLeft = drawables[0]; if (drawableLeft != null) { float textWidth = getPaint().measureText(getText().toString()); int drawablePadding = getCompoundDrawablePadding(); int drawableWidth = 0; drawableWidth = drawableLeft.getIntrinsicWidth(); float bodyWidth = textWidth + drawableWidth + drawablePadding; canvas.translate((getWidth() - bodyWidth) / 2, 0); } } super.onDraw(canvas); } }
總結(jié):和普通TextView用法一致,無(wú)需額外增加屬性,drawableRight不能用。
以上就是對(duì)自定義控件讓TextView的drawableLeft與文本一起居中顯示的問題解決,需要的朋友可以參考下。
相關(guān)文章
monkeyrunner之安卓開發(fā)環(huán)境搭建教程(1)
這篇文章主要介紹了monkeyrunner之安卓開發(fā)環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-11-11Android uses-permission權(quán)限列表中文注釋版
Android有一個(gè)精心設(shè)計(jì)的安全模型。每一個(gè)應(yīng)用都有其自己Linux用戶和群組,在單獨(dú)的進(jìn)程和VM上運(yùn)行,不能影響到其他應(yīng)用2014-05-05Android實(shí)現(xiàn)橫向滑動(dòng)卡片效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)橫向滑動(dòng)卡片效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-12-12Android?性能優(yōu)化實(shí)現(xiàn)全量編譯提速的黑科技
這篇文章主要為大家介紹了Android?性能優(yōu)化實(shí)現(xiàn)全量編譯提速的黑科技,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Fragment通過FragmentManager實(shí)現(xiàn)通信功能詳細(xì)講解
這篇文章主要介紹了Fragment通過FragmentManager實(shí)現(xiàn)通信功能,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-01解決android報(bào)錯(cuò):Intel HAXM is required to run this AVD
這篇文章主要介紹了解決android報(bào)錯(cuò):Intel HAXM is required to run this AVD,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧2020-11-11android中SwipeRefresh實(shí)現(xiàn)各種上拉,下拉刷新示例
這篇文章主要介紹了android中SwipeRefresh實(shí)現(xiàn)各種上拉,下拉刷新示例,非常具有實(shí)用價(jià)值,需要的朋友可以參考下。2017-03-03Android簡(jiǎn)單實(shí)現(xiàn)自定義流式布局的方法
這篇文章主要介紹了Android簡(jiǎn)單實(shí)現(xiàn)自定義流式布局的方法,結(jié)合實(shí)例形式分析了Android流式布局的原理與實(shí)現(xiàn)技巧,需要的朋友可以參考下2016-07-07