2012-06-01 17 views
22

धराशायी के बाद एक धराशायी लाइन, XML में एक ShapeDrawable के रूप में परिभाषित किया गया है:एंड्रॉयड लाइन drawable संभावित आईसीएस बग

<shape 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:shape="line"> 

    <size 
     android:height="2dp" 
     android:width="700dp" /> 

    <stroke 
     android:width="1dp" 
     android:color="@android:color/black" 
     android:dashWidth="1dp" 
     android:dashGap="2dp" /> 

</shape> 

यह कई जिंजरब्रेड फोन पर एक अच्छा बिंदीदार रेखा आकर्षित करेगा। गैलेक्सी नेक्सस पर हालांकि, डैश को नजरअंदाज कर दिया जाता है और आकार को एक संगत रेखा के रूप में खींचा जाता है। यहां तक ​​कि अधिक उत्सुक, आईसीएस चलाने वाला एक एमुलेटर इसे डैश के साथ सही ढंग से प्रस्तुत करेगा, यह केवल भौतिक डिवाइस खराब हो रहा है।

क्या मुझे कुछ याद आ रही है? या यह एंड्रॉइड 4.0 के साथ वास्तव में एक बग है? लाइन कई स्थानों पर प्रयोग किया जाता है।

<ImageView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginLeft="@dimen/observation_observe_side_margin" 
    android:layout_marginRight="@dimen/observation_observe_side_margin" 
    android:layout_marginTop="16dp" 
    android:contentDescription="@string/dotted_line_description" 
    android:src="@drawable/dotted_line" /> 
+0

मैं गैलेक्सी नेक्सस पर अपने ऐप पर एक ही समस्या को देख रहा हूं। मेरे अन्य उपकरणों 2.x उपकरणों पर यह बिंदीदार के रूप में दिखाई देता है। –

+0

http://stackoverflow.com/a/26296229/185022 –

+0

का डुप्लिकेट [डॉटेड लाइन वास्तव में डॉट नहीं किया गया है जब वास्तविक एंड्रॉइड डिवाइस पर ऐप चल रहा है] (http://stackoverflow.com/questions/18931679/dotted -लाइन-वास्तव में-नहीं-बिंदीदार-जब-ऐप-ऑन-रन-ऑन-रीयल-एंड्रॉइड-डिवाइस) –

उत्तर

21

यह समस्या यहां http://code.google.com/p/android/issues/detail?id=29944 लॉग होता है हार्डवेयर त्वरण बंद करने से धराशायी लाइन दिखाएगा: यहाँ एक उदाहरण imageView है।

view.setLayerType(View.LAYER_TYPE_SOFTWARE, null) 

यह मेरे लिए काम किया:

+2

दुर्भाग्यवश यह मेरे प्रदर्शन को लगभग 500% खराब कर देता है। इसे रोकने के लिए कोई कामकाज? –

43

मुद्दा http://code.google.com/p/android/issues/detail?id=29944 पर लॉग ऑन आपके विचार के लिए निम्न लागू करने की एक टिप्पणी है।

+27

ध्यान दें कि यदि आप प्रोग्राम को प्रोग्राम रूप से संपादित नहीं करना चाहते हैं तो आप एक्सएमएल परिभाषा में 'एंड्रॉइड: layerType = "सॉफ़्टवेयर" विशेषता भी जोड़ सकते हैं। – Arkaaito

+0

एपीआई 11+ http://developer.android.com/reference/android/view/View.html#setLayerType – Dori

+0

इसलिए प्रश्न में उदाहरण में। क्या आप 'android: layerType =" सॉफ़्टवेयर "को' ImageView' या 'shape'' पर सेट करेंगे? –