問題複原
UI設計師給的圖,圖檔文字在一行
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"
/>