वहाँ MediaController अनुकूलित करने के लिए कोई तरीका है? मुझे बटन, सेकबार इत्यादि की शैली बदलने की जरूरत हैबदलें
बदलें
उत्तर
विधि makeControllerView
को ओवरराइड करने का मतलब था ताकि आप अपना खुद का विचार दे सकें। दुर्भाग्य से, इस समय यह छिपा हुआ है।
आप MediaController के स्रोत लेने के लिए और या तो यह reimplement या कॉपी और पेस्ट ताकि आप इसे अनुकूलित कर सकते हैं एक उपवर्ग में छिपा तरीकों कर सकते हैं।
'' makeControllerView' के लिए protected' है मैं जिस स्रोत को देख रहा हूं। क्या किसी को पता है कि यह 'निजी' से 'संरक्षित' में बदल गया है? – William
ओह, शायद आप 'android.widget.MediaController' में 'makeControllerView' के लिए javadoc में @hide के बारे में बात कर रहे हैं। हालांकि यह जावाडोक बिट काम करने से '@ ओवरराइड' एनोटेशन को रोकता प्रतीत होता है, लेकिन यह वास्तव में विधि को ओवरराइड करने से रोकता नहीं है। मूल प्रश्न लगभग अपरिवर्तित है - क्या यह कभी निजी था? – William
आप क्या कर सकते अपने MediaController को देखते पदानुक्रम recurse और प्रोग्राम के रूप में seekbar के drawable सेट किया गया है: तो फिर
private void styleMediaController(View view) {
if (view instanceof MediaController) {
MediaController v = (MediaController) view;
for(int i = 0; i < v.getChildCount(); i++) {
styleMediaController(v.getChildAt(i));
}
} else
if (view instanceof LinearLayout) {
LinearLayout ll = (LinearLayout) view;
for(int i = 0; i < ll.getChildCount(); i++) {
styleMediaController(ll.getChildAt(i));
}
} else if (view instanceof SeekBar) {
((SeekBar) view).setProgressDrawable(getResources().getDrawable(R.drawable.progressbar));
((SeekBar) view).setThumb(getResources().getDrawable(R.drawable.progresshandle));
}
}
, बस
styleMediaController(myMC);
आपका कोड मेरे लिए काम नहीं करता है। पैरामीटर 'इंडेक्स' का कारण क्या है? 'v.getChildCount()' हर बार 0 देता है। – rekire
@rekire इंडेक्स पैरामीटर की आवश्यकता है क्योंकि फ़ंक्शन को मीडिया कंट्रोलर व्यू के दृश्य पदानुक्रम को अवरुद्ध करते हुए, स्वयं द्वारा बार-बार कहा जाता है। – bk138
लेकिन परिवर्तनीय 'इंडेक्स' का कभी भी उपयोग नहीं किया जाता है। – rekire
मैं बदल bk138 के कोड को का जवाब फोन तत्वों के रंग को बदलें। खुद को drawables नहीं। यह समाधान समर्थन पुस्तकालय v4 के साथ पुराने उपकरणों के अनुकूल है।
private void styleMediaController(View view) {
if (view instanceof MediaController) {
MediaController v = (MediaController) view;
for (int i = 0; i < v.getChildCount(); i++) {
styleMediaController(v.getChildAt(i));
}
} else if (view instanceof LinearLayout) {
LinearLayout ll = (LinearLayout) view;
for (int i = 0; i < ll.getChildCount(); i++) {
styleMediaController(ll.getChildAt(i));
}
} else if (view instanceof SeekBar) {
((SeekBar) view)
.getProgressDrawable()
.mutate()
.setColorFilter(
getResources().getColor(
R.color.MediaPlayerMeterColor),
PorterDuff.Mode.SRC_IN);
Drawable thumb = ((SeekBar) view).getThumb().mutate();
if (thumb instanceof android.support.v4.graphics.drawable.DrawableWrapper) {
//compat mode, requires support library v4
((android.support.v4.graphics.drawable.DrawableWrapper) thumb).setCompatTint(getResources()
.getColor(R.color.MediaPlayerThumbColor));
} else {
//lollipop devices
thumb.setColorFilter(
getResources().getColor(R.color.MediaPlayerThumbColor),
PorterDuff.Mode.SRC_IN);
}
}
}
फिर, बस फोन
styleMediaController(myMC);
VideoView
की OnPreparedListener
में styleMediaController(myMC)
कॉल करने के लिए यह काम करने के लिए था। अन्यथा MediaController दृश्य में कोई बच्चा नहीं है।
'setCompatTint' क्या है? –
- 1. टेक्स्ट बदलें बदलें मूल्य
- 2. बदलें
- 3. बदलें
- 4. सी # में बदलें और जावा में बदलें
- 5. गिट विवाद (नाम बदलें/नाम बदलें)
- 6. INotifyProperty के बिना अधिसूचना बदलें बदलें?
- 7. अभिविन्यास बदलें पर UITableViewCell ऊंचाई बदलें
- 8. सूची बदलें कैसे बदलें टेक्स्ट रंग
- 9. मूल्य बदलें
- 10. LC_CTYPE बदलें
- 11. बदलें विंडोज
- 12. पाठ बदलें
- 13. बदलें/SQLAlchemy
- 14. SystemParameters बदलें
- 15. बदलें एक्स
- 16. बदलें पेपरक्लिप
- 17. बदलें: vim
- 18. बदलें classloader
- 19. AVMetadataItem बदलें
- 20. लिनक्स पर सॉकेट कनेक्शन टाइमआउट को कैसे बदलें/बदलें?
- 21. jScrollPane के पक्ष को बदलें और आकार बदलें
- 22. स्ट्रिंगबिल्डर है। जगह बदलें() स्ट्रिंग से अधिक कुशल। जगह बदलें?
- 23. हैश बदलें ईवेंट को ट्रिगर किए बिना हैश बदलें
- 24. स्ट्रिंग। बदलें (चार, चार) या बदलें (स्ट्रिंग, स्ट्रिंग)?
- 25. नेंट: फ़ाइल अनुमति बदलें
- 26. बदलें लक्ष्य 2008
- 27. बदलें यूआरएल पता पीएचपी
- 28. एंड्रॉइड ऑडियो: पिच बदलें
- 29. सरल TextWrangler Grep बदलें
- 30. UIBarButtonItem की चौड़ाई बदलें
यहाँ एक उदाहरण MediaController अनुकूलन है: http://stackoverflow.com/questions/12482203/how-to-create-custom-ui-for-android-mediacontroller/14323144#14323144 – Blago