2012-02-23 12 views

उत्तर

76

यह शायद अंतरों का हिस्सा केवल कवर करता है, वास्तव में यह देखने के लिए एंड्रॉइड स्रोत पेड़ को देखना उपयोगी होगा कि वास्तव में क्या हो रहा है।

छविबूटन ने धक्का दिया है, जहां एक क्लिक करने योग्य छवि नहीं है। आप छविबटन के लिए सेटटेक्स्ट भी नहीं कॉल कर सकते हैं, आप नियमित बटन के साथ कर सकते हैं।

वे सभी दृश्य से निकलते हैं, लेकिन निम्नलिखित विस्तार श्रृंखला को देखते हुए थोड़ा सा मदद मिल सकती है।

java.lang.Object 
↳ android.view.View 
    ↳ android.widget.ImageView 
     ↳ android.widget.ImageButton 

बनाम

java.lang.Object 
↳ android.view.View 
    ↳ android.widget.TextView 
     ↳ android.widget.Button 
+0

सही यह गहराई से जवाब में बहुत अच्छा है। धन्यवाद – Snake

+0

मजेदार। कई प्रकार की विरासत (एक प्रकार) की कमी के कारण समस्याओं का एक और उदाहरण। –

10

मतभेद सूक्ष्म हो सकता है। इसे समझने का सबसे सीधा तरीका दस्तावेज़ों को देखने के साथ शुरू करना है। यदि आप docs for Button देखते हैं तो आप देख सकते हैं कि ButtonTextView से लिया गया है। दूसरी तरफ ImageButtonImageView से लिया गया है। तो मूल रूप से, Button में टेक्स्ट हो सकता है और क्लिक करने योग्य है, जबकि ImageButton छवि को सेट करने में थोड़ा अधिक लचीला है। इसमें ImageView आधार वर्ग जैसे setImageURI से विधियां हैं जो Button नहीं है। इन दोनों के बीच मतभेदों में से एक और सिर्फ एक सादा ImageView यह है कि आपके पास बटन राज्य हो सकते हैं जो Button और ImageButton दस्तावेज़ों में समझाया गया है। imageView रूप

+0

उत्तर के लिए धन्यवाद – Snake

9
ImageView = Display Images (android:src) 

ImageButton = Diaplay छवियाँ और बटन (android:src) रूप get click प्रभाव है और यह करने के लिए पाठ निर्धारित नहीं कर सकते।

Button = set text and (android:background) 
+0

धन्यवाद यह सेटिंग का वाक्यविन्यास अंतर है। मुझे वास्तविक मतभेदों को जानने की आवश्यकता थी (जब उपयोग करना या अलग दिखना) – Snake

3

एक अन्य पिछले जवाब में उल्लेख नहीं किया पहलू (उदाहरण के लिए) सूची आइटम दृश्य के भीतर उपयोग है। यदि आप एक बटन या छवि बटन एम्बेड करते हैं, तो बाकी सूची आइटम को स्पर्श ईवेंट नहीं मिलेगा। लेकिन अगर आप ImageView का उपयोग करते हैं, तो यह होगा।

1
button instanceof ImageButton == false; 
imageButton instanceof Button == false; 
button instanceof TextView == true; 
imageButton instanceof ImageView == true; 
संबंधित मुद्दे