天天看點

android button設定drawableleft間距,TextView設定drawableLeft後設定間距

問題複原

UI設計師給的圖,圖檔文字在一行

android button設定drawableleft間距,TextView設定drawableLeft後設定間距

image.png

怎麼整

我直接使用的TextView的drawableLeft屬性,直接把圖檔放置在文本前頭。

android:id="@+id/act_message_textview1"

android:layout_width="match_parent"

android:layout_height="43dp"

android:gravity="center_vertical"

android:textColor="@color/black"

android:layout_marginLeft="10dp"

android:drawableLeft="@mipmap/msg_link"

android:text="@string/home2_chat_message"

/>

那麼問題來了,設計師曰:"你這沒有按設計稿走,圖檔與文字直接應該有間距...."

解決問題

當textview設定了drawableLeft之後,圖檔緊貼文本,如何想要預留出間距。需要借用drawblePadding屬性

代碼設定

setCompoundDrawablePadding(4);

TextView textView = new TextView(this);

textView.setText(MemDesc);

//在左側添加圖檔

Drawable drawable= getResources().getDrawable(R.drawable.gray_circle);

drawable.setBounds(0, 0, drawable.getMinimumWidth(), drawable.getMinimumHeight());

textView.setCompoundDrawables(drawable, null, null, null);

textView.setTextColor(getResources().getColor(R.color.gray_textcolor_shen));

textView.setCompoundDrawablePadding(4);//設定圖檔和text之間的間距

xml設定

android:drawablePadding="@dimen/dp6"

android:id="@+id/act_message_textview1"

android:layout_width="match_parent"

android:layout_height="43dp"

android:gravity="center_vertical"

android:textColor="@color/black"

android:layout_marginLeft="10dp"

android:drawableLeft="@mipmap/msg_link"

android:drawablePadding="@dimen/dp6"

android:text="@string/home2_chat_message"

/>