हालांकि this answer अपेक्षित व्यवहार प्राप्त कर सकता है, जैसा कि आप नीचे दी गई टिप्पणियों में पढ़ सकते हैं: "यह हैक नहीं है कुछ उपकरणों पर काम "। मुझे Adneal's answer के अनुसार एक और तरीका मिला जो मुझे सुराग और विशेष रूप से करने का सही तरीका देता है।
लोअर एपीआई: उपयोग आईडी R.id.up संबंधित ImageView
पुनः प्राप्त करने के।
एपीआई> = 14: मिल होम ImageView
(android.R.id.home) और पहला बच्चा जो UpIndicator
(android.R.id.up) है पुनः प्राप्त के रिश्तेदार Parent
।
फिर, इस स्निपेट कोड को गतिशील UpIndicator
परिवर्तन:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.ICE_CREAM_SANDWICH) {
// get the parent view of home (app icon) imageview
ViewGroup home = (ViewGroup) findViewById(android.R.id.home).getParent();
// get the first child (up imageview)
((ImageView) home.getChildAt(0))
// change the icon according to your needs
.setImageDrawable(getResources().getDrawable(R.drawable.custom_icon_up));
} else {
// get the up imageview directly with R.id.up
((ImageView) findViewById(R.id.up))
.setImageDrawable(getResources().getDrawable(R.drawable.custom_icon_up));
}
मैं कई उपकरणों पर परीक्षण नहीं किया (यही कारण है कि मुझे यकीन है कि यह ऊपर कोड सभी उपकरणों के लिए काम करता है नहीं कर रहा हूँ है), लेकिन इस लगता है कि the update part here में उल्लिखित एपीआई में बहुत अच्छा काम करता है।
नोट: यदि आप उच्च और निम्न एपीआई के बीच अंतर कर नहीं है, तो आप एक NullPointerException क्योंकि R.id.up
उच्च API में उपलब्ध है, जबकि android.R.id.up
निम्नतर API में उपलब्ध नहीं है नहीं है मिल जाएगा।
हालांकि संसाधन (upId) पाया जाता है, और नए imageView, परिभाषित Galaxy S3 डिवाइस पर यह नहीं काम करता है हैक काम किया। हालांकि, जब मैंने नेक्सस 4 पर परीक्षण किया, तो ठीक काम करता है। – seufagner