2010-01-14 9 views
16

मैं बटन और अन्य तत्वों के लिए फोकस/दबाए गए रंग का पता लगाने की कोशिश कर रहा हूं। इसकी आवश्यकता है क्योंकि मैं नए घटकों को विकसित कर रहा हूं और यह महत्वपूर्ण है कि वे मंच के हिस्से के रूप में देखें। ये रंग एंड्रॉइड एसडीके और एचटीसी सेंसयू पर ग्रीन पर ऑरेंज हैं। यदि मैं उस रंग का पता लगा सकता हूं तो मेरा घटक दोनों संस्करणों पर मंच के हिस्से के रूप में दिखाई देगा।फिक्स्ड: "एंड्रॉइड: फ़ोकस/दबाए गए रंग का पता लगाना"

क्या कोई जानता है कि यह कैसे करें?


यह "चयनकर्ता" जो डिफ़ॉल्ट स्थिति और ध्यान/चयन के लिए मंच डिफ़ॉल्ट के लिए कस्टम छवि का उपयोग करता है बनाने के लिए संभव है। 1) में "रेस/drawable" (उदाहरण के लिए "red_button.xml") चयनकर्ता के साथ एक्सएमएल फ़ाइल बनाने:

इस चरणों का पालन करने के लिए

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:state_pressed="true" 
     android:drawable="@android:drawable/btn_default" > 
    </item> 

    <item android:state_focused="true" 
     android:drawable="@android:drawable/btn_default" > 
    </item> 

    <item 
     android:drawable="@drawable/btn_default_red" > 
    </item> 
</selector> 

2) फ़ोल्डर से " .../android-sdk-mac/प्लेटफॉर्म/एंड्रॉइड-1.5/डेटा/res/drawable/"तस्वीर लें" btn_default_pressed.9.png "और अपनी पसंद के अनुसार रंग बदलें (मुझे इसे लाल रंग में बदलने की आवश्यकता है और इस जीआईएमपी के लिए पर्याप्त है)।

3) में "रेस/drawable" बदल चित्र जगह (नाम "btn_default_red.9.png")

4) को परिभाषित बटन के साथ उदहारण के लिए:

<Button 
    android:id="@+id/info_button" 
    android:layout_width="wrap_content" 
    android:layout_height="37dip" 
    android:layout_marginTop="1dip" 
    android:background="@drawable/red_button" 
    android:text="[Info]" /> 

सब है कि। alt text http://img200.imageshack.us/img200/1349/custombutton.png

उत्तर

6

उन रंगों नहीं हैं:

यह परिणाम है। वे StateListDrawable में से कुछ नौ-पैच छवियां हैं। मुझे संदेह है कि यह निर्धारित करने के लिए एक विश्वसनीय तरीका होगा कि रंग क्या है, जो कि सभी उपकरणों और एंड्रॉइड के सभी संस्करणों में काम करेगा।

0

यह काफी का डुप्लिकेट है: Android ListView Selector Color

इसके अलावा, तुम क्यों रंग का पता लगाने की जरूरत है? बस कुछ भी नहीं और आपके विजेट प्लेटफॉर्म के मौजूदा रूप & महसूस में फिट होंगे।

या यदि आप एक कस्टम थीम लिख रहे हैं, तो बस अपना उत्तराधिकारी android:Theme से प्राप्त करें।

+0

मुझे रंग की आवश्यकता है क्योंकि ग्राहक कंपनी की सीडी/सीआई का प्रतिनिधित्व करने के लिए डिफ़ॉल्ट रंग (जब चयनित नहीं है या केंद्रित नहीं है) चयन/फोकस रंग प्लेटफॉर्म (एंड्रॉइड डिफ़ॉल्ट, एचटीसी सेंसयू) निर्भर करता है। –

+0

ऐसा लगता है जैसे यह भयानक लगेगा, लेकिन ठीक है! –

+0

मैंने परिणामस्वरूप बटन के चित्र (चित्र से लिंक) जोड़ा। मैं डिजाइनर नहीं हूं लेकिन मुझे लगता है कि बटन स्वीकार्य दिखते हैं। –

8

मुझे यह समस्या भी थी। जैसा कि पहले से ही कहा गया है, समस्या यह है कि पृष्ठभूमि सरल रंग नहीं हैं, वे ड्रायरेबल हैं जो सभी प्रकार के प्रदर्शनों को ले सकते हैं। हालांकि, मुझे एक काम-आसपास मिला जो मदद कर सकता है। यदि आपका कस्टम घटक किसी मौजूदा जैसा दिखता है, उदा। एक बटन या ListView प्रविष्टि, आप बस अपनी पृष्ठभूमि/चयनकर्ता चोरी कर सकते हैं और अपने कस्टम घटक के लिए पृष्ठभूमि के रूप में सेट कर सकते हैं। जैसे, अपने कस्टम घटक निर्माता में:

setBackgroundDrawable(new Button(context).getBackground()); 

या सूची की तरह घटकों के लिए अधिक उपयुक्त एक पृष्ठभूमि के लिए:

setBackgroundDrawable(new ListView(context).getSelector()); 

आप कुछ हद तक है कि कोड का अनुकूलन कर सकते हैं, लेकिन आप विचार मिलता है।

+1

अच्छा कामकाज –

+0

हाँ अच्छा छोटी चाल। एक कार्य अपेक्षाकृत सरल है कि वास्तव में आसपास के काम को उजागर करने के लिए शोध के दिन ले गए हैं। बहुत धन्यवाद। –

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