Android 讓自定義TextView的drawableLeft與文本一起居中
前言
TextView的drawableLeft、drawableRight和drawableTop是一個常用、好用的屬性,可以在文本的上下左右放置一個圖片,而不使用更加復(fù)雜布局就能達到,我也常常喜歡用RadioButton的這幾個屬性實現(xiàn)很多效果,但是苦于不支持讓drawbleLeft與文本一起居中,設(shè)置gravity為center也無濟于事,終于有空研究了一下,這里與大家一起分享。
正文
一、效果圖
二、實現(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用法一致,無需額外增加屬性,drawableRight不能用。
以上就是對自定義控件讓TextView的drawableLeft與文本一起居中顯示的問題解決,需要的朋友可以參考下。
相關(guān)文章
monkeyrunner之安卓開發(fā)環(huán)境搭建教程(1)
這篇文章主要介紹了monkeyrunner之安卓開發(fā)環(huán)境搭建教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下2016-11-11Android uses-permission權(quán)限列表中文注釋版
Android有一個精心設(shè)計的安全模型。每一個應(yīng)用都有其自己Linux用戶和群組,在單獨的進程和VM上運行,不能影響到其他應(yīng)用2014-05-05Android?性能優(yōu)化實現(xiàn)全量編譯提速的黑科技
這篇文章主要為大家介紹了Android?性能優(yōu)化實現(xiàn)全量編譯提速的黑科技,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-09-09Fragment通過FragmentManager實現(xiàn)通信功能詳細講解
這篇文章主要介紹了Fragment通過FragmentManager實現(xiàn)通信功能,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習或者工作具有一定的參考學(xué)習價值,需要的朋友們下面隨著小編來一起學(xué)習吧2023-01-01解決android報錯:Intel HAXM is required to run this AVD
這篇文章主要介紹了解決android報錯:Intel HAXM is required to run this AVD,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11android中SwipeRefresh實現(xiàn)各種上拉,下拉刷新示例
這篇文章主要介紹了android中SwipeRefresh實現(xiàn)各種上拉,下拉刷新示例,非常具有實用價值,需要的朋友可以參考下。2017-03-03