android - एंड्रॉइड: drawableLeft मार्जिन और/या पैडिंग
android-layout android-drawable (10)
अपने 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>
इस आकार में परिभाषित पैडिंग drawable बाएं या दाएं को पैडिंग देने में मदद करेगा ---------------------- इस दृश्य को 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"
/>
पृष्ठभूमि के रूप में परिभाषित आकार का उपयोग करके आपके एडिटटेक्स्ट को कुछ स्टाइल प्लस मार्जिन ड्रॉइंग लेफ्ट के लिए दिया जाएगा।
क्या छवि के लिए मार्जिन या पैडिंग सेट करना संभव है जिसे हमने android:drawableLeft
साथ जोड़ा android:drawableLeft
?
अपने खींचने योग्य संसाधन.एक्सएमएल बनाओ
<?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>
आप बटन के लिए पैडिंग का उपयोग कर सकते हैं और आप 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" />
आप एक विशिष्ट पैडिंग का उपयोग कर सकते हैं जहां आपके ड्रॉइंग को एंड्रॉइड के साथ रखा गया है: पैडिंग लेफ्ट = "10 डीपी" या एंड्रॉइड: पैडिंगबॉटम = "10 डीपी" या एंड्रॉइड: पैडिंग राइट = "10 डीपी" या एंड्रॉइड: पैडिंगटॉप = "10 डीपी"
आपको परत सूची का उपयोग करने पर विचार करना चाहिए
इस तरह एक खींचने योग्य फ़ाइल बनाएं, इसे 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"
/>
टेक्स्ट व्यू में android:drawablePadding प्रॉपर्टी जो चाल android:drawablePadding चाहिए:
एंड्रॉयड: drawablePadding
Drawables और पाठ के बीच पैडिंग।
एक आयाम मान होना चाहिए, जो एक इकाई के साथ संलग्न एक फ़्लोटिंग पॉइंट नंबर है जैसे कि "14.5sp"। उपलब्ध इकाइयां हैं: पीएक्स (पिक्सेल), डीपी (घनत्व-स्वतंत्र पिक्सल), एसपी (पसंदीदा फ़ॉन्ट आकार के आधार पर स्केल किए गए पिक्सेल), (इंच), मिमी (मिलीमीटर) में।
यह संसाधन के संदर्भ में भी हो सकता है (रूप में "@ [पैकेज:] प्रकार: नाम") या विषय विशेषता (रूप में "? [पैकेज:] [प्रकार:] नाम") जिसमें इस प्रकार का मान होता है ।
यह वैश्विक विशेषता संसाधन प्रतीक drawablePadding से मेल खाता है।
नकारात्मक पैडिंग का उपयोग करने का प्रयास करता है
पसंद:
android:paddingLeft="-8dp"
मैं अपना जवाब अंगूठी में भी फेंक दूंगा। यदि आप प्रोग्रामेटिक रूप से ऐसा करना चाहते हैं तो आप निम्न कार्य कर सकते हैं।
final Drawable drawable = ContextCompat.getDrawable(getContext(), R.drawable.somedrawable);
final boolean isLTR = ViewCompat.LAYOUT_DIRECTION_LTR == ViewCompat.getLayoutDirection(this);
final int iconInsetPadding = getResources().getDimensionPixelSize(R.dimen.icon_padding);
final Drawable insetDrawable = new InsetDrawable(drawable, isLTR ? 0 : iconInsetPadding, 0, isLTR ? iconInsetPadding : 0, 0);
यह ड्रॉइंग के अंत में पैडिंग जोड़ देगा जहां अंत एलटीआर या आरटीएल में फोन के आधार पर बाएं / दाएं का मतलब होगा।
यदि खींचने योग्य resouce का आकार तय किया गया है, तो आप ऐसा कर सकते हैं:
<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"
यही है, खींचने योग्य संसाधन प्लस पैडिंग राइट का आकार पैडिंग लेफ्ट है।
android:drawablePadding
paddingRight
पैडिंग paddingRight
आइकन पर पैडिंग देने का सबसे आसान तरीका है, लेकिन आप पैडिंग की तरह एक तरफ पैडिंग नहीं दे सकते हैं paddingRight
या पैडिंग paddingRight
paddingLeft
की सुविधा। इसे प्राप्त करने के लिए आपको इसे खोदना होगा। और यदि आप paddingRight
लिए Edittext
paddingLeft
या paddingRight
paddingLeft
लागू paddingLeft
तो यह Edittext
आइकन के साथ पूरे Edittext
पैडिंग Edittext
।
android:drawablePadding
केवल टेक्स्ट और ड्रॉबल के बीच एक पैडिंग अंतर बनाएगा यदि बटन 2 को एक साथ squish करने के लिए पर्याप्त छोटा है। यदि आपका बटन संयुक्त चौड़ाई (drawableLeft / drawableRight) या ऊंचाई (drawableTop / drawableBottom के लिए) से बड़ा है तो drawablePadding कुछ भी नहीं करता है।
मैं अभी भी इस के साथ संघर्ष कर रहा हूं। मेरे बटन काफी चौड़े हैं, और आइकन बटन के बाएं किनारे पर लटक रहा है और पाठ मध्य में केंद्रित है। इसके लिए अब तक पहुंचने का मेरा एकमात्र तरीका फ़ोटोशॉप के साथ कैनवास के बाएं किनारे पर खाली पिक्सेल जोड़कर खींचने पर मार्जिन में सेंकना है। आदर्श नहीं है, और वास्तव में भी सिफारिश नहीं की है। लेकिन अब टेक्स्टव्यू / बटन के पुनर्निर्माण से कम, मेरे लिए मेरा स्टॉप-गैप समाधान है।