編輯:關於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配置一覽 小米筆記本Air完整配置說明
小米筆記本Air已經發布,在配置上有兩個版本,一款是13寸的高配版和12寸的輕薄款,具體的配置我們來看看。小米筆記本配置小米筆記本Air采用全金屬超輕薄設計
Android開發學習路線圖
行業背景: 今天,涉及通信產業鏈中的每個環節,都有Android的身影,Android是第一款完全
Android布局之TableLayout表格布局
Tablelayout類以行和列的形式對控件進行管理,每一行為一個TableRow對象,或一個View控件。當為TableRow對象時,可在TableRow下添加子控件,
帶吸附效果的ViewPager(一)
什麼叫吸附效果?先看一個示例更為直觀,借用網上的一個效果圖: 類似這種效果的app很多,網上的實現方法也是很多,但各種重寫各種監聽又令人不勝其煩,