पूर्व और लॉलीपॉप + उपकरणों पर तरंग प्रभाव
हार्नर और लियूटिंग सही है। स्वीकृत उत्तर सबसे अच्छा तरीका नहीं है। मुझे कोड दिखाते हैं कि प्री-लॉलीपॉप संस्करणों और उच्चतर के लिए तरंग रंग को कैसे बदलना है
आपके AppTheme को किसी भी AppCompat विषय से वारिस होना चाहिए और उसमें ColorControlHighlight विशेषता (बिना 'android: preef) के होना चाहिए
<!-- Application theme. -->
<style name="AppTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
<item name="colorControlHighlight">#40ffffff</item>
</style>
आपके विचार में क्लिक करने योग्य = "सत्य" होना चाहिए (या प्रोग्रामर पर एक क्लिक श्रोता सेट होना चाहिए) और पृष्ठभूमि होनी चाहिए "?
<LinearLayout
...
android:clickable="true"
android:background="?attr/selectableItemBackgroundBorderless"/>
ध्यान दें: यदि आपके माता-पिता के दृश्य में सफेद पृष्ठभूमि है, तो आप सफेद होने के बाद लहर प्रभाव नहीं देखेंगे। एक अलग रंग के लिए colorControlHighlight मान बदलें
इसके अलावा, यदि आप अलग-अलग गतिविधियों के लिए अलग-अलग रंग चाहते हैं, तो आप मेनिफेस्ट फ़ाइल में प्रत्येक गतिविधि के लिए व्यक्तिगत विषय निर्धारित कर सकते हैं, उदाहरण के लिए:
<activity
android:name="com.myapp.GalleryActivity"
android:theme="@style/RedRippleTheme"
/>
एक ही गतिविधि में अलग-अलग टुकड़ों के लिए अलग-अलग तरंग रंग?
आप रनटाइम में प्रत्येक टुकड़े के लिए गतिविधि थीम की विशेषताओं को बदल सकते हैं। खंडित करने से पहले उन्हें अपने कस्टम शैली के साथ फुलाया गया था और वर्तमान थीम पर लागू होता है:
में मूल्यों / styles.xml
<style name="colorControlHighlight_blue">
<item name="colorControlHighlight">@color/main_blue_alpha26</item>
</style>
फिर, मुद्रास्फीति से पहले आपके टुकड़े में onCreateView()
:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
getContext().getTheme().applyStyle(R.style.colorControlHighlight_blue, true); //blue ripple color
View view = inflater.inflate(R.layout.my_fragment_layout, container, false);
return view;
}
यह शैली केवल इस टुकड़े के लिए काम करेगी
अलग-अलग दृश्यों के लिए अलग-अलग तरंग रंग? (लॉलीपॉप +)
आप colorControlHighlight
विशेषता का उपयोग करते हुए प्रत्येक दृश्य के लिए तरंग रंग को बदल सकते हैं
, यदि आप उन्हें सीधे दृश्य पर लागू करते हैं तो यह काम नहीं करता है :
<TextView
...
colorControlHighlight="#40ffffff"/> <!-- DOESN'T WORK -->
आपको इसे एक विषय के रूप में लागू करना चाहिए:
<TextView
...
android:theme="@style/colorControlHighlight_blue"/>
PS इसके अलावा, कभी-कभी यह दृष्टिकोण मदद करता है अगर आपके पास लहर के साथ अज्ञात समस्याएं हैं और आप इसका पता नहीं लगा सकते हैं। मेरे मामले में, मैंने 3rd पार्टी स्लाइडिंग लिब का इस्तेमाल किया जिसने पूरे लेआउट के लिए लहर प्रभाव को गड़बड़ कर दिया और इस विषय को स्पष्ट रूप से जोड़कर मेरे लिए काम किए गए सभी क्लिक करने योग्य विचारों को जोड़ा।
colorControlHighlight
के बजायandroid:colorControlHighlight
मेरे लिए बेहतर काम करता है, अन्यथा यह + V21 के लिए ही है