2010-12-07 13 views
5

मैं एक बटन पृष्ठभूमि के रूप में उपयोग करने के लिए एक आकार बना रहा था। मैं बटनों की एक पट्टी बना रहा हूं, और बाएं किनारे पर एक बाईं ओर गोलाकार कोनों के लिए जा रहा है, और दाईं ओर के आखिरी व्यक्ति को दाईं ओर गोलाकार कोने होंगे। यह बहुत आसान है, और एपीआई दस्तावेज़ आपको दिखाते हैं कि यह कैसे करें। हालांकि, जब मैंने android:topLeftRadius और android:bottomLeftRadius का उपयोग किया, तो यूआई में परिणाम ऐसा था जैसे मैंने नीचे राइटराइडियस रखा था। वही व्यवहार दूसरी तरफ सच था। ऐसा प्रतीत होता है कि जो भी इस swapped नीचे दाएं और नीचे लेफ्ट लागू किया। मैं नीचे दिए गए कोड का एक स्निपेट पोस्ट करूंगा।एंड्रॉइड एक्सएमएल आकार घोषणा में कॉमिकल बग

क्या इसके लिए कुछ तार्किक कारण है कि मुझे याद आ रही है? या, अगर यह एंड्रॉइड इंजीनियरों के हिस्से में एक गलती थी, तो क्या इसे ठीक करने के बाद यह पिछड़ा संगत रहेगा? मुझे कल्पना है कि पुराने लोगों को वैध रखने के लिए उन्हें सभी नए गुण बनाना होगा (शायद शीर्ष के बजाय बाएं टॉप?)।

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:state_pressed="true" > 
     <shape> 
      <solid android:color="#99000000" /> 
      <padding 
       android:top="8dp" 
       android:left="8dp" 
       android:right="8dp" 
       android:bottom="8dp" /> 
      <corners 
       android:topLeftRadius="8dp" 
       android:bottomRightRadius="8dp" /> 
     </shape> 
    </item> 
+0

संभावित डुप्लिकेट [बाएं-टॉप राउंड गोलाकार कोने और बाएं-नीचे गोल कोने के साथ आकार कैसे बनाएं?] (http://stackoverflow.com/questions/3056232/how-to-make -एक-आकार-साथ-बाएँ-टॉप-राउंड गोल कोने और बाएं नीचे गोल सह) – jamessan

उत्तर

2

मुझे यह प्रतीत नहीं होता है, लेकिन मुझे कहीं याद है कि एक बग था जिसने आपको पहले त्रिज्या को ओवरराइड करने की आवश्यकता थी, फिर उन लोगों को वापस सेट करें जिन्हें आप त्रिज्या नहीं चाहते हैं; उदाहरण के लिए:

<corners 
    android:radius="8dp" 
    android:topRightRadius="0dp" 
    android:bottomLeftRadius="0dp" 
    /> 

मैं सफलता की गारंटी नहीं देता, लेकिन आप इसे आज़मा सकते हैं।

संपादित करें: आह, डोनट का सही उत्तर लगता है।

1
<corners android:topLeftRadius="0.1dp" 
android:topRightRadius="6dp" 
android:bottomRightRadius="0.1dp" 
android:bottomLeftRadius="6px" /> 

यह बाएं और ऊपर दाईं ओर काम करेगा। अपनी आवश्यकता के साथ इसे समायोजित करें

संबंधित मुद्दे