मैंने इस subject को एंड्रॉइड टेक्स्टव्यू के आस-पास सीमा डालने के बारे में देखा है, और मैंने इसका इस्तेमाल किया। लेकिन अब, मैं एक रिश्तेदार लेआउट में स्थित विगेट्स के चारों ओर एक सीमा रखना चाहता हूं। मैं यह कैसे कर सकता हूं?एक एंड्रॉइड रिलेटिवेलआउट के आसपास सीमा कैसे डालें?
उत्तर
फ़्रेमलेआउट बनाएं जो आपकी सीमा का पृष्ठभूमि रंग प्राप्त करता है, और आपकी सीमा चौड़ाई का मार्जिन या पैडिंग बनाता है, और आपके रिलेवेटिवआउट में फ़्रेमलेआउट रखें। RelativeLayout में सीधे अपने फ्रेमलेआउट में टेक्स्ट व्यू रखें। poof तत्काल सीमा।
मुझे समझ में नहीं आया, क्या आप कृपया मुझे एक उदाहरण दे सकते हैं? – AyaAndro
RelativeLayout layout = (RelativeLayout) view.findViewById(R.id.borderEffect); // id fetch from xml
ShapeDrawable rectShapeDrawable = new ShapeDrawable(); // pre defined class
// get paint
Paint paint = rectShapeDrawable.getPaint();
// set border color, stroke and stroke width
paint.setColor(Color.GRAY);
paint.setStyle(Style.STROKE);
paint.setStrokeWidth(5); // you can change the value of 5
layout.setBackgroundDrawable(rectShapeDrawable);
-
अपने
- , एक नई फ़ाइल
background_border.xml
res/drawable
फ़ोल्डर में
बनाने इस फाइल में, आप इस तरह विजेट के लिए पृष्ठभूमि परिभाषित करेगा:
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- This is the stroke you want to define -->
<stroke android:width="1dp"
android:color="@color/color_stroke"/>
<!-- Optional, round your corners -->
<corners android:bottomLeftRadius="0dp"
android:topLeftRadius="5dp"
android:bottomRightRadius="5dp"
android:topRightRadius="0dp" />
<!-- Optional, fill the rest of your background with a color or gradient, use transparent if you only want the border to be displayed-->
<gradient android:startColor="@android:color/transparent"
android:endColor="@android:color/transparent"
android:angle="90"/>
</shape>
- आपके विजेट की पृष्ठभूमि को खींचने योग्य कॉन्फ़िगरेशन पर सेट करें जिसे आपने अभी बनाया है
उदाहरण के लिए। यदि आप एक relativelayout पर अपनी सीमा रखना चाहता हूँ:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/background_border"
android:padding="15dp">
...
</RelativeLayout>
हालांकि सभी प्रदान की जवाब काम करते हैं, वे बहुत rigid.what हैं यदि आप सीमा रंग, अलग अलग स्क्रीन के लिए borderthickness अनुकूलित करने के लिए चाहते हैं। इसके लिए आपको मेरा समाधान करने की कोशिश करनी चाहिए। हम एक कस्टम रिलेवेटिवआउट बनाने में तीन चरणों का पालन करने जा रहे हैं जो आपको सीमा सीमा के लिए सीमा रंग और मोटाई प्रदान करने की अनुमति देता है।
1) एक वर्ग है कि RelativeLayout फैली बनाएँ और ड्रा विधि
public class BorderRelativeLayout extends RelativeLayout {
private float borderThickness;
private int borderColor;
public BorderRelativeLayout(Context context) {
this(context, null, 0);
}
public BorderRelativeLayout(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public BorderRelativeLayout(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
init(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Rect rect = new Rect();
Paint paint = new Paint();
paint.setColor(borderColor);
paint.setStrokeWidth(borderThickness);
getLocalVisibleRect(rect);
canvas.drawLine(rect.left, rect.bottom, rect.right, rect.bottom, paint);
}
private void init(Context context, AttributeSet attrs) {
setWillNotDraw(false);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.BorderRelativeLayout);
borderThickness = array.getDimension(R.styleable.BorderRelativeLayout_borderThickness, 0.5f);
borderColor = array.getColor(R.styleable.BorderRelativeLayout_borderColor,
ContextCompat.getColor(context, R.color.colorPrimary));
}
}
2) पर ओवरराइड attrs.xml में stylable गुण को परिभाषित करें
<declare-styleable name="BorderRelativeLayout">
<attr name="borderThickness" format="dimension"/>
<attr name="borderColor" format="color"/>
</declare-styleable>
3) आप कर चुके हैं और आप इसे उपयोग कर सकते हैं
<com.spacewek.spacewek.controls.BorderRelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/headLayout"
app:borderThickness="2dp"
app:borderColor="@color/divider_new_color">
</com.spacewek.spacewek.controls.BorderRelativeLayout>
यह अधिक है –
- 1. मैं एंड्रॉइड लीनियरआउट के आसपास सीमा कैसे बना सकता हूं?
- 2. बिटमैप के आसपास सफेद सीमा कैसे बनाएं?
- 3. ली टैग के आसपास सीमा
- 4. मैटलैब प्लॉट के आसपास सीमा हटाएं
- 5. div सीमा सामग्री के आसपास नहीं
- 6. उद्देश्य सी: फोटो के आसपास सीमा प्रभाव कैसे बनाएं
- 7. कमांड लाइन लंबाई सीमा के आसपास कैसे प्राप्त करें?
- 8. छवि के आसपास अजीब पैडिंग समस्या
- 9. बूटस्ट्रैप 2.2.1 मोडल बग - कॉलिंग href के आसपास नीली सीमा?
- 10. इसके आसपास की सीमा के साथ एक एसवीजी "लाइन" कैसे बनाएं?
- 11. एंड्रॉइड में टेबललेआउट में टैबलेरो के लिए सीमा कैसे दें?
- 12. एंड्रॉइड बैक बटन दबाकर एक संवाद बॉक्स कैसे डालें
- 13. मेरे एंड्रॉइड एप्लिकेशन पर विज्ञापन कैसे डालें?
- 14. एंड्रॉइड एमुलेटर: नकारात्मक संख्या डालें?
- 15. एक रेडियो बटन के दाईं ओर एक छवि कैसे डालें, एंड्रॉइड
- 16. एंड्रॉइड - एक छवि नाम "पैकेज" डालें संकलित समय त्रुटि
- 17. एंड्रॉइड जियोकोडर कोटा सीमा
- 18. एक मनमानी धुरी के आसपास परिपत्र रोटेशन
- 19. अरबी डेटा डालें और चुनें एंड्रॉइड SQLite
- 20. आईएलजीनरेटर के आसपास एक अच्छा रैपर है?
- 21. ओपनजीएल एक स्पॉट के आसपास घूमता है
- 22. एक एम्बेडेड पीडीएफ के आसपास टूलबार छुपाएं?
- 23. एंड्रॉइड कैसे एक छवि के साथ ImageView बनाने के लिए एक सीमा है?
- 24. Iterm में एक टैब कैरेक्टर कैसे डालें?
- 25. बंडल में एक दृश्य कैसे डालें
- 26. mvnrepository.com में एक जार कैसे डालें?
- 27. आसपास के पिक्सल
- 28. रिक्ति के आसपास रूबी
- 29. एंड्रॉइड में एनिमेटेड डैशेड सीमा
- 30. एंड्रॉइड में ढाल सीमा बनाएँ?
चूंकि आपने कोई जवाब स्वीकार नहीं किया है, तो क्या आपने इस लिंक को http://stackoverflow.com/questions/832359 पर देखा है 9/कैसे-से-जोड़ने-नीचे-सीमा-में-relativelayout – surhidamatya
आपका प्रश्न उत्तर के लिए डुप्लिकेट है कृपया इस लिंक को चेक करें। http://stackoverflow.com/a/17980889/801369 – dhuma1981