क्या उस छवि के लिए मार्जिन या पैडिंग सेट करना संभव है जिसे हमने जोड़ा है android:drawableLeft
?
क्या उस छवि के लिए मार्जिन या पैडिंग सेट करना संभव है जिसे हमने जोड़ा है android:drawableLeft
?
जवाबों:
जैसा कि उल्लेख किया गया है कि android:drawablePadding
यदि बटन पर्याप्त छोटा है तो पाठ और ड्रॉबल के बीच केवल पैडिंग के लिए बाध्य किया जाएगा।
जब बाहर बड़े बटन आप 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" />
passwordToggleDrawable
बाएं पैडिंग गैप बड़ा हो जाता है क्योंकि यह केवल ड्रॉबल के लिए विशेष लक्ष्य नहीं कर सकता है।
TextView के पास एक android है: ड्रॉबलपैड प्रॉपर्टी जो कि चाल करना चाहिए:
एंड्रॉयड: drawablePadding
ड्रॉबल्स और टेक्स्ट के बीच पैडिंग।
एक आयाम मान होना चाहिए, जो कि "14.5sp" जैसी इकाई के साथ जोड़ा गया एक फ्लोटिंग पॉइंट नंबर है। उपलब्ध इकाइयाँ हैं: px (पिक्सेल), dp (डेंसिटी-इंडिपेंडेंट पिक्सल), sp (पसंदीदा फ़ॉन्ट आकार पर आधारित स्केल्ड पिक्सल), (इंच), mm (मिलीमीटर) में।
यह एक संसाधन (फ़ॉर्म में "@ [पैकेज:] प्रकार: नाम") या थीम विशेषता (फ़ॉर्म में "? [पैकेज:] [प्रकार:] नाम") का संदर्भ भी हो सकता है, जिसमें इस प्रकार का मान होता है ।
यह वैश्विक विशेषता संसाधन प्रतीक ड्रॉबलपैडिंग से मेल खाती है।
android:drawablePadding
केवल पाठ और ड्रॉबल के बीच एक पैडिंग गैप बनाएगा यदि बटन 2 को एक साथ स्क्वीज करने के लिए छोटा है। यदि आपका बटन संयुक्त चौड़ाई (drawableLeft / drawableRight के लिए) या ऊँचाई (drawableTop / drawableBottom के लिए) से अधिक है, तो drawablePadding कुछ भी नहीं करता है।
मैं इस समय के साथ भी संघर्ष कर रहा हूं। मेरे बटन काफी चौड़े हैं, और आइकन बटन के बाएं किनारे पर लटका हुआ है और पाठ बीच में केंद्रित है। मेरा अब तक का एकमात्र तरीका है कि फ़ोटोशॉप के साथ कैनवस के बाएँ किनारे पर रिक्त पिक्सेल जोड़कर ड्रॉएबल पर एक मार्जिन में सेंकना किया गया है। आदर्श नहीं है, और वास्तव में अनुशंसित भी नहीं है। लेकिन अब TextView / Button के पुनर्निर्माण के लिए मेरा स्टॉप-गैप समाधान है।
हाँ। निम्नानुसार 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" />
अपने drawable resource.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>
android:drawablePadding
ड्रॉइंग आइकन को पैडिंग देने का सबसे आसान तरीका है, लेकिन आप विशिष्ट एक साइड पैडिंग को paddingRight
या paddingLeft
ड्रॉएबल आइकन की तरह नहीं दे सकते हैं । यह हासिल करने के लिए कि आपको इसे खोदना है। और अगर आप लागू होते हैं paddingLeft
या paddingRight
करने के लिए Edittext
तो यह गद्दी पूरे करने के लिए स्थापित करेंगे Edittext
drawable आइकन के साथ।
अपने 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 पर पेडिंग लाईट या पेडिंग राइट लगाते हैं तो यह ड्रॉइंग आइकन के साथ-साथ पूरे एडिटिंग में पैडिंग लगा देगा।
<TextView android:layout_width="match_parent"
android:padding="5sp"
android:id="@+id/date"
android:gravity="center|start"
android:drawableEnd="@drawable/ic_calendar"
android:background="@drawable/edit_background"
android:hint="Not Selected"
android:drawablePadding="10sp"
android:paddingStart="10sp"
android:paddingEnd="10sp"
android:textColor="@color/black"
android:layout_height="wrap_content"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="32dp"
android:background="@drawable/a"
android:drawableLeft="@drawable/concern_black"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:drawablePadding="10dp"
android:text="text"/>
नोट: लेआउट_ एक्सपोज़र को गैप_ कॉन्टेंट होने की जरूरत है और गैप को नियंत्रित करने के लिए पेडिंग लाईट पेडिंगराइट ड्राएबलपैडिंग का उपयोग करें। यदि आप निर्दिष्ट करते हैं कि लेआउट_उपयोग मूल्य में आइकन और पाठ के बीच अंतर होगा, तो मुझे लगता है कि एक बार लेआउट_विशेषता निर्दिष्ट मान दें, तो पैडिंग माप जाएगा।
मैं अपना उत्तर रिंग में भी फेंक दूंगा। यदि आप इस प्रोग्राम को करना चाहते हैं तो आप निम्न कार्य कर सकते हैं।
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);
इससे पैडेबल को ड्रॉबल के अंत में जोड़ा जाएगा जहां एंड का अर्थ होगा कि एलटीआर या आरटीएल में फोन के आधार पर लेफ्ट / राइट।
इसके बजाय Button
उपयोग के LinearLayout
साथ ImageView
और TextView
अंदर। बाल वस्तुओं में जैसे ImageView
और TextView
उपयोग android:duplicateParentState="true"
।
आपको लेयर-लिस्ट का उपयोग करने पर विचार करना चाहिए
इस तरह एक ड्रा करने योग्य फ़ाइल बनाएं, इसे 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"
/>
आप बटन के लिए एक पैडिंग का उपयोग कर सकते हैं और आप ड्रॉबलपैडिंग के साथ खेल सकते हैं
<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" />
आप एक विशिष्ट पैडिंग का उपयोग कर सकते हैं, जिसमें आपका ड्रा करने योग्य निर्भर होता है, जिसमें एंड्रॉइड शामिल है: paddingLeft = "10dp" या android: paddingBottom = "10dp" या Android: paddingRight = "10dp" या "paddTop =" 10dp "
आप android:drawableLeft="@drawable/your_icon"
बाईं ओर दिखाए जाने वाले ड्रॉबल को सेट करने के लिए उपयोग कर सकते हैं । Drawable के लिए एक गद्दी सेट करने के लिए आप का उपयोग करना चाहिए android:paddingLeft
या android:paddingRight
क्रमशः छोड़ दिया / सही गद्दी स्थापित करने के लिए।
android:paddingRight="10dp"
android:paddingLeft="20dp"
android:drawableRight="@drawable/ic_app_manager"
यदि ड्रॉबल रिसौस का आकार तय किया गया है, तो आप इस तरह कर सकते हैं:
<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"
यही है, ड्रॉबल रिसोर्स प्लस पेडिंग राइट का आकार पेडिंग लाइट है।
textView.setCompoundDrawablesWithIntrinsicBounds(AppCompatResources.getDrawable(this,drawable),null,null,null);
addressTitleView.setCompoundDrawablePadding();
बस से रीमेक:
<?xml version="1.0" encoding="utf-8"?>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="40dp"/>
<solid android:color="@android:color/white"/>
</shape>
सेवा
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:right="@dimen/_2dp"
android:left="@dimen/_2dp"
android:bottom="@dimen/_2dp"
android:top="@dimen/_2dp"
>
<shape
xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="40dp"/>
<solid android:color="@android:color/white"/>
</shape>
</item>
</layer-list>
नकारात्मक गद्दी का उपयोग करने की कोशिश करता है
पसंद:
android:paddingLeft="-8dp"