是否可以爲我們添加的圖像設置邊距或邊距android:drawableLeft
?android:drawableLeft margin和/或padding
回答
的TextView有一個android:drawablePadding財產應該做的伎倆:
安卓drawablePadding
的可繪製和文本之間的填充。
必須是一個尺寸值,這是一個浮點數,附加了一個單位(例如「14.5sp」)的 。可用單位爲:px(像素),dp (與濃度無關的像素),sp(基於首選 字體大小的縮放像素),單位爲英寸,毫米(毫米)。
這也可能是對資源的引用(形式爲 「@ [package:] type:name」)或主題屬性(形式爲 「?[package:] [type:] name」)包含這種類型的值。
這對應於全局屬性資源符號 drawablePadding。
android:drawablePadding
只會在文本和drawable之間創建一個填充間隙,如果按鈕足夠小,可以將它們壓扁在一起。如果你的按鈕寬於組合寬度(對於drawableLeft/drawableRight)或高度(對於drawableTop/drawableBottom),那麼drawablePadding不會做任何事情。
我現在也在爲此苦苦掙扎。我的按鈕很寬,圖標掛在按鈕的左邊,文本居中居中。我現在唯一的解決方法是通過使用photoshop在畫布的左邊緣添加空白像素來繪製可繪製邊緣。不理想,也沒有真正推薦。但那是我現在的缺口解決方案,很少重建TextView/Button。
感謝解釋我的問題。我沒有意識到,它只是當按鈕足夠寬時造成的 – 2011-09-11 13:18:29
由於cephus提到android:drawablePadding
只會強制文本和drawable之間的填充,如果按鈕足夠小。
當佈置較大的按鈕時,您可以使用android:drawablePadding
與android:paddingLeft
和android:paddingRight
一起強制文本並向內朝向按鈕的中心。通過分別調整左側和右側填充,可以對佈局進行非常詳細的調整。
下面是一個使用填充,以推動文本和圖標的例子按鈕間距小於他們將默認爲:
<Button android:text="@string/button_label"
android:id="@+id/buttonId"
android:layout_width="160dip"
android:layout_height="60dip"
android:layout_gravity="center"
android:textSize="13dip"
android:drawableLeft="@drawable/button_icon"
android:drawablePadding="2dip"
android:paddingLeft="30dip"
android:paddingRight="26dip"
android:singleLine="true"
android:gravity="center" />
而是按鈕的使用的LinearLayout用的ImageView和TextView的內部。在像ImageView和TextView這樣的子項中,使用android:duplicateParentState =「true」。
實際上您需要一個FrameLayout和一個Button(以及它們自己的LinearLayout中的ImageView/TextView)來重現按鈕UI並將onclicklistener()傳送到按鈕部分 – 3c71 2014-03-21 19:14:54
爲什麼使用額外的佈局(如果在TextView中已經有drawablePadding)。 – 2017-08-10 10:37:57
試圖使用負填充
喜歡:
android:paddingLeft="-8dp"
限定一種形狀爲您的EditText並給它填充 對於實施例
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<padding
android:left="5dp"
android:right="5dp"
/>
<solid android:color="#F6F6F6" />
<stroke
android:width="1px"
android:color="#C3C3C3" />
<corners
android:bottomLeftRadius="1dp"
android:bottomRightRadius="1dp"
android:topLeftRadius="1dp"
android:topRightRadius="1dp" />
</shape>
在這種形狀中定義的填充將幫助給填充繪製左鍵或右鍵 ----------------------在EditView上應用此形狀
<EditText
android:id="@+id/example"
android:layout_width="fill_parent"
android:layout_height="36dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/shape2"
android:drawableLeft="@drawable/icon1"
android:drawablePadding="@dimen/txtDrwblPadding"
android:ems="10"
/>
使用該定義的形狀作爲背景將給您的EditText一些樣式加邊距drawableLeft。
其很好的解決方案,謝謝! – 2015-02-10 13:59:58
讓您繪製resources.xml中
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_checked="true">
<inset android:drawable="@drawable/small_m" android:insetLeft="10dp" android:insetTop="10dp" />
</item>
<item>
<inset android:drawable="@drawable/small_p" android:insetLeft="10dp" android:insetTop="10dp" />
</item>
</selector>
它的好解決方案。 – 2015-09-12 18:12:35
謝謝你的傢伙!這個解決方案讓我花了很多時間。 – emaleavil 2015-11-04 13:54:12
@最好的藝術家我用drawable插入它,並且對於較新版本的設備工作正常。我的意思是它不在SDK 16,17中工作,但在SDK 23中工作。有什麼想法嗎? – 2016-03-11 12:09:07
android:drawablePadding
是給填充到繪製圖標的最簡單的方法,但你不能給出具體的一面填充像paddingRight
或繪製icon.To的paddingLeft
實現,你有挖掘它。 並且如果您將paddingLeft
或paddingRight
應用於Edittext
,則它將填充整個Edittext
以及可繪製圖標。
您可以使用android:drawableLeft="@drawable/your_icon"
來設置要顯示在左側的繪圖。爲了爲drawable設置填充,您應該使用android:paddingLeft
或android:paddingRight
分別設置左/右填充。
android:paddingRight="10dp"
android:paddingLeft="20dp"
android:drawableRight="@drawable/ic_app_manager"
您可以使用填充的按鈕,你可以用drawablePadding
玩<Button
style="@style/botonesMenu"
android:padding="15dp"
android:drawablePadding="-15dp"
android:text="@string/actualizarBD"
android:textAlignment="gravity"
android:gravity="center"
android:layout_row="1"
android:layout_column="0"
android:drawableTop="@drawable/actualizar"
android:id="@+id/btnActualizar"
android:onClick="actualizarBD" />
您可以使用特定的填充取決於在那裏把你的繪製,採用Android:paddingLeft =「10dp」或Android :paddingBottom來= 「10dp」 或Android:paddingRight = 「10dp」 或Android:paddingTop = 「10dp」
如果繪製種源的大小是固定的,你可以這樣做:
<Button
android:background="@drawable/rounded_button_green"
style="?android:attr/selectableItemBackground"
android:layout_height="wrap_content"
app:layout_widthPercent="70%"
android:drawableRight="@drawable/ic_clear_black_24dp"
android:paddingRight="10dp"
android:paddingLeft="34dp"
tools:text="example" />
這裏的關鍵是:
android:drawableRight="@drawable/ic_clear_black_24dp"
android:paddingRight="10dp"
android:paddingLeft="34dp"
也就是說,繪製資源加上paddingRight的大小是paddingLeft。
是的。使用drawablePadding如下,
<TextView
android:id="@+id/tvHeader"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Settings and Contents"
android:drawableLeft="@drawable/icon_success"
android:drawablePadding="10dp" />
您應該考慮使用層列表
創建這樣的繪製文件,並將它命名爲ic_calendar。XML
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<solid android:color="@android:color/transparent"/>
</shape>
</item>
<item android:right="10dp">
<bitmap android:gravity="center_vertical|left"
android:src="@drawable/ic_calendar_16dp"
android:tint="@color/red"
/>
</item>
</layer-list>
在佈局文件,
<TextView
android:id="@+id/tvDate"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_calendar"
android:textColor="@color/colorGrey"
android:textSize="14sp"
/>
textView.setCompoundDrawablesWithIntrinsicBounds(AppCompatResources.getDrawable(this,drawable),null,null,null);
addressTitleView.setCompoundDrawablePadding();
雖然此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code- based-answers)確實有助於提高您的質量帖子。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – 2018-03-03 22:15:52
- 1. :: margin和padding
- 2. CSS div margin/padding error
- 3. thumbnail scroller margin(padding)issue
- 4. ListView scrollbarStyle with margin/padding
- 5. Android ListView row padding/margin
- 6. margin-bottom或padding-bottom不工作
- 7. CSS - 應EM用於margin和padding
- 8. 100%寬度減去margin和padding
- 9. 關於* {margin:0; padding:0;}
- 10. HTML5 <figure> margin/padding
- 11. 在引導類中使用margin或padding是否好?
- 12. 如果margin和padding爲0,爲什麼imgs之間的空格?
- 13. 設置margin和padding爲0,在HTML電子郵件中頂部和底部
- 14. 「margin-left」和「left」(或「margin-right」,和「right」)之間的區別
- 15. Android 4.2 RadioButton android:drawableLeft bug?
- 16. Margin/Padding左側的引導程序Navbar的隱藏標題?
- 17. 在內容頁面中避免* {padding = 0; margin:0} css?
- 18. Auto Stretch Child Div to Parent and using%vs px margin/padding
- 19. 處理CSS margin/padding「衝突」的最佳做法是什麼?
- 20. 使用Margin/Padding實現無Position屬性的絕對定位
- 21. padding-left和padding-start有什麼區別?
- 22. 如何直觀地展現padding和margin在可視化編輯器
- 23. 所見即所得編輯器支持編輯的margin,padding和邊框
- 24. 使用浮動+ margin + padding的CSS定位有什麼不好和好處?
- 25. Android:drawableLeft設置阿爾法
- 26. RelativeLayout和margin?
- 27. CSS:除了margin和padding之外,img和text之間可以放置什麼空間?
- 28. 使用div的margin-top/padding-top問題。顯示塊等不起作用
- 29. 消毒劑無法解析HTML以下塊:<br style=\"margin: 0px; padding: 0px;\"/>
- 30. 如何知道在塊級元素上應該使用margin還是padding?
高興成爲第200個像 – 2017-03-14 07:49:40