編輯:關於Android編程
前言
TextView的drawableLeft、drawableRight和drawableTop是一個常用、好用的屬性,可以在文本的上下左右放置一個圖片,而不使用更加復雜布局就能達到,我也常常喜歡用RadioButton的這幾個屬性實現很多效果,但是苦於不支持讓drawbleLeft與文本一起居中,設置gravity為center也無濟於事,終於有空研究了一下,這裡與大家一起分享。
正文
一、效果圖
二、實現代碼
自定義控件
/** * 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); } }
總結:和普通TextView用法一致,無需額外增加屬性,drawableRight不能用。
以上就是對自定義控件讓TextView的drawableLeft與文本一起居中顯示的問題解決,需要的朋友可以參考下。
小米筆記本Air已經發布,在配置上有兩個版本,一款是13寸的高配版和12寸的輕薄款,具體的配置我們來看看。小米筆記本配置小米筆記本Air采用全金屬超輕薄設計
行業背景: 今天,涉及通信產業鏈中的每個環節,都有Android的身影,Android是第一款完全
Tablelayout類以行和列的形式對控件進行管理,每一行為一個TableRow對象,或一個View控件。當為TableRow對象時,可在TableRow下添加子控件,
什麼叫吸附效果?先看一個示例更為直觀,借用網上的一個效果圖: 類似這種效果的app很多,網上的實現方法也是很多,但各種重寫各種監聽又令人不勝其煩,