styles.xml içinde tanımlayarak temaları ayarlayabilir ve ben de gelişmiştir başka bir uygulamanın temalar almak için oAndroid'de başka bir uygulama kaynağından tema nasıl değiştirilir? Bildiğim
setTheme(android.R.style.MyTheme);
gibi Ancak, ben istiyorum kullanmak için bir yolu yoktur. Kaynak isimlerini biliyorum ve aslında bu kod bloğuyla tema idini alabiliyorum;
Resources res = getPackageManager().getResourcesForApplication("com.example.theme");
int resThemeId = res.getIdentifier("my_theme","style","com.example.theme");
Hata ayıklama yaparken, resThemeId öğesinin sıfır olmadığını görüyorum.
Bu temayı ayarlamak için son komuta ihtiyacım var. Ben deyimi altında yazarsanız super.onCreate() işlevi önce, bu yöntemi uygulamaya çalışıyorum ama buna Ama bunun yerine
setTheme(resThemeId);
çalışmıyor görünüyor, ben gayet iyi çalışıyor
setTheme(android.R.style.Theme_Holo_Light);
Yani , farklı paket kaynaklarından bir tema kullanmak için ne yapmalıyım?
Kaynak kimliğini başka bir paketten alabilirsiniz, ancak bu kaynaklar APK'nızda mevcut değildir. 'PackageManager # getResourcesForApplication (String packageName)' kullanarak kaynakların yüklenmesi, drawables, string, booller, vb. Için çalışmalıdır. Ancak, başka bir APK'nın temasını yüklemenin mümkün ve kesinlikle tavsiye edilmediğine inanmıyorum. –
Başka bir paket kaynağından elde edilebilir çizgilere, iplere ve boole sahip olsa da, temaları da almayı umuyorum. Neden imkansız? – Berkay92
Mümkün (cevabıma bakın). Temayı uygulayabilmeniz için diğer uygulamanın kaynaklarını iade etmek üzere getResrouces'i geçersiz kılmanız gerekir. Bu ayrıca tüm dizeleri, düzenleri, çekilebilir malzemeleri ve diğer kaynakları diğer uygulamadan döndürecektir, bu nedenle, önerilmez. –